1、        多线程指的是在单个进程中可以同时运行多个不同的线程,执行不用的任务.多线程意味着一个程序的多行语句可以看上去几乎同时进行.

同样作为基本的执行单元,线程是划分得比进程更小的执行单位.

每个进程都有一段专用的内存区域.与此相反,线程却共享内存单位(包括代码和数据),通过共享的内存单元来实现数据交换,实时通信与必要的同步操作.

2、              单线程:

创建TestThread对象之后调用run()方法,输出"TestThread在运行",最后执行main方法中的循环,输出"main线程在运行".

3、        要使一个类可激活线程,必须按照下面的语法来编写.

Class 类名称 extends Thread//从Thread类拓展出子类

{

属性....

方法....

修饰符 run(){....以线程处理的程序...;}//覆写Thread类里的run()方法

}

 
   

要启动线程必须调用Thread类之中的start()方法,而调用了start()方法,也就是调用run()方法.

4、       
由于java单继承的缘故,使用Runnable接口来创建线程.多线程的定义语法如下

class
类名称 implements Runnable

{

属性...

方法...

修饰符
run(){...以线程处理的程序...;}

}得到

Runnable接口中并没有start()方法,所以一个类实现了Runnable接口也必须用Thread类中的start()方法来启动多线程.在Thread类中有这样一个构造方法:

public Thread(Runnable target)

将一个Runnable接口的实例化对象作为参数去实例化Thread类对象.

5、       
Thread类实现了Runnable接口,也就是说Thread类也是Runnable接口的一个子类.

用Thread类(继承Thread类)实际上无法达到资源共享的目地.也就是说通过"new
Thread().start();"启动的多个线程,实际各个对象各自占有各自的资源.而实现Runnable接口(继承Runnable类)则是启动多个线程对象,操纵同一个资源,从而实现了资源共享的目的.

J2SE知识点摘记(八)的更多相关文章

  1. J2SE知识点摘记(十八)

    Java容器类类库的用途是“保存对象”,并将其划分为两个不同的概念: 1)  Collection . 一组对立的元素,通常这些元素都服从某种规则.List必须保持元素特定的顺序,而Set 不能有重复 ...

  2. J2SE知识点摘记(六)

    1.        static关键字的使用 static 关键字:可以用于修饰属性,也可以用于修饰方法,还可以用于修饰类. static 修饰属性:无论一个类生成了多少个对象,所有这些对象共同使用唯 ...

  3. J2SE知识点摘记(五)

    1.        引用数据类型的传递 java用引用代替C++中的指针 fun()方法接收的参数是是Change c1,也就是说说fun()方法接受的是一个对象的引用,所以fun方法中所所做的操作就 ...

  4. J2SE知识点摘记(四)

    1.        抽象类(abstract) 抽象类和抽象方法都必须用abstract关键字来修饰. 抽象类不能被直接实例化,也就是不能直接用new关键字去产生对象. 抽象方法只需声明,而不需实现. ...

  5. J2SE知识点摘记(三)

    1.         在java只允许单继承,而不允许多重继承,也就是说一个子类只能有一个父类.但在java中却允许多层继承. 2.         非内部Class只能被public或者defaul ...

  6. J2SE知识点摘记(二)

    1.    对象的声明 "类名 对象名 = new 类名();"例子:Person P;//先声明一个Person类的对象p p=new Person();//用new关键字实例化 ...

  7. J2SE知识点摘记(一)

    1.        数组的声明时无法指定数组的长度. 2.        一维数组的声明和内存的分配 "数据类型    数组名[]; //声明一维数组     数组名=  new 数据类型[ ...

  8. J2SE知识点摘记-数据库(二)

    一.          查询数据 注意sql的内容. 通过ResultSet接口保存全部的查询结果,通过Statement接口中的executeQuery()方法查询.查询之后需要分别取出.通过nex ...

  9. J2SE知识点摘记-数据库(一)

    一.          数据库连接 在JDBC的操作过程中,进行数据库连接的主要步骤如下: 通过Class.forName()加载数据库的驱动程序.首先需要利用来自Class类中的静态方法forNam ...

随机推荐

  1. linux中断--进程上下文和中断上下文

    一.前言 中断发生以后,CPU跳到内核设置好的中断处理代码中去,由这部分内核代码来处理中断.这个处理过程中的上下文就是中断上下文. 为什么可能导致睡眠的函数都不能在中断上下文中使用呢? 首先睡眠的含义 ...

  2. 解决Eclipse下第三方库无法导航源代码

    写在前面(的废话):Eclipse无法导航代码,存在的可能性非常多,这里我们只讨论在引用第三方库时无法导航的情况,是一个很简单的Case,但是搜索能力好像不太及格,没找到一针见血的方案,于是自己研究了 ...

  3. js 概念(构造函数)

    所有关于类.对象的语言里面,都有构造函数的概念,其实构造函数,就是在创建这个对象或者类的实例时候自动调用的函数,一般的语言都是new创建,那么new的参数就传递给构造函数.

  4. Delphi获取当前系统时间(使用API函数GetSystemTime)

    在开发应用程序时往往需要获取当前系统时间.尽管Y2K似乎已经平安过去,但在我们新开发的应用程序中还是要谨慎处理“时间”问题. 在<融会贯通--Delphi4.0实战技巧>(以下简称“该书” ...

  5. 2014第11周四Eclipse开发问题记

    今天开发中eclipse工具使用上又学到几点: 1.去除代码空行:在Find输入框中输入:^\s*\n然后替换为空即可: 2.eclipse插件的加载:对于单一个jar文件的插件,直接放在plugin ...

  6. Java实现验证码图片

    这样的实现方式对JDK版本有要求. 1 package edu.cloud.editmap.utils; import java.awt.Color; import java.awt.Font; im ...

  7. How to convert string to wstring?

    How to convert string to wstring? - Codejie's C++ Space - C++博客     How to convert string to wstring ...

  8. MD5 32位、16位加密

    /// <summary> /// MD5 16位加密 /// </summary> /// <param name="ConvertString"& ...

  9. CodeForces - 508D Tanya and Password(欧拉通路)

    Description While dad was at work, a little girl Tanya decided to play with dad characters. She has ...

  10. Ubuntu12.04下eclipse提示框黑色背景色的修改方法

    eclipse提示框的背景颜色使用的是系统的提示框颜色配置,在windows下为黄色,但在Ubuntu12.04(gnome)下却是黑色,造成提示内容很难看清. 在eclipse中我们是无法修改这个颜 ...