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. jQuery的extend详解

    JQuery的extend扩展方法:      Jquery的扩展方法extend是我们在写插件的过程中常用的方法,该方法有一些重载原型,在此,我们一起去了解了解.      一.Jquery的扩展方 ...

  2. OSX: 10.9的SMB网络共享连接可能破坏其权限设置

    参见以前的Blog,“OSX: 10.9 Mavericks的重要更新技术细节(1)”,自从10.9之后,它的内核默认地使用全新的SMB2协议,这本来是令人期待的变化,不过根据这多年来和OS X系统的 ...

  3. android中viewPager实现的屏幕左右切换(入门篇)

    大多数的APP都可以实现几个屏幕来回的切换, 首先新建两个Activity,内容随意,布局随意.接下来在MainActivity.xml: <RelativeLayout xmlns:andro ...

  4. 如何截取url中的各个参数?

    在页面跳的时候,目的界面可能会根据url中的某些参数进行数据处理,这个时候如何能快速并设计一个通用的截取url中的参数,并且获取各个参数值? 代码: url = location.search;//获 ...

  5. highcharts:根据Y的数值范围,动态改变图形的填充颜色

    图形实例: 源代码如下:   <!DOCTYPE html><html><head><meta charset="utf-8">&l ...

  6. Transfer learning across two sentiment classes using deep learning

    用深度学习的跨情感分类的迁移学习 情感分析主要用于预测人们在自然语言中表达的思想和情感. 摘要部分:two types of sentiment:sentiment polarity and poli ...

  7. 工作中的第一份LoadRunner脚本

    录制的第一份脚本 虽然是第一份但是调试执行,跑场景等都成功了. Action() { web_url("login1.jsp", "URL=http://192.168. ...

  8. _OBJC_CLASS_$_ errors 错误解决办法

    步骤如下图: 1. 点击 Manage Schemes 2. Shared打对勾即可

  9. 如何在IIS 中配置应用程序(Convert to Application)?

    1.打开IIS 2.选择待操作的虚拟目录 3.鼠标右键,点击"Convert to Application” 4.点击connect as 5.选中Specific user,并点击Set ...

  10. 如何使用for循环连续的实例化多个对象!

    Test类import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class Test ...