J2SE知识点摘记(八)
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知识点摘记(八)的更多相关文章
- J2SE知识点摘记(十八)
Java容器类类库的用途是“保存对象”,并将其划分为两个不同的概念: 1) Collection . 一组对立的元素,通常这些元素都服从某种规则.List必须保持元素特定的顺序,而Set 不能有重复 ...
- J2SE知识点摘记(六)
1. static关键字的使用 static 关键字:可以用于修饰属性,也可以用于修饰方法,还可以用于修饰类. static 修饰属性:无论一个类生成了多少个对象,所有这些对象共同使用唯 ...
- J2SE知识点摘记(五)
1. 引用数据类型的传递 java用引用代替C++中的指针 fun()方法接收的参数是是Change c1,也就是说说fun()方法接受的是一个对象的引用,所以fun方法中所所做的操作就 ...
- J2SE知识点摘记(四)
1. 抽象类(abstract) 抽象类和抽象方法都必须用abstract关键字来修饰. 抽象类不能被直接实例化,也就是不能直接用new关键字去产生对象. 抽象方法只需声明,而不需实现. ...
- J2SE知识点摘记(三)
1. 在java只允许单继承,而不允许多重继承,也就是说一个子类只能有一个父类.但在java中却允许多层继承. 2. 非内部Class只能被public或者defaul ...
- J2SE知识点摘记(二)
1. 对象的声明 "类名 对象名 = new 类名();"例子:Person P;//先声明一个Person类的对象p p=new Person();//用new关键字实例化 ...
- J2SE知识点摘记(一)
1. 数组的声明时无法指定数组的长度. 2. 一维数组的声明和内存的分配 "数据类型 数组名[]; //声明一维数组 数组名= new 数据类型[ ...
- J2SE知识点摘记-数据库(二)
一. 查询数据 注意sql的内容. 通过ResultSet接口保存全部的查询结果,通过Statement接口中的executeQuery()方法查询.查询之后需要分别取出.通过nex ...
- J2SE知识点摘记-数据库(一)
一. 数据库连接 在JDBC的操作过程中,进行数据库连接的主要步骤如下: 通过Class.forName()加载数据库的驱动程序.首先需要利用来自Class类中的静态方法forNam ...
随机推荐
- javascript 数据结构和算法读书笔记 > 第五章 队列
队列是一种列表,但是它只能够在队尾插入元素,在队首删除元素.队列用于存储按照顺序排列的数据,先进先出.而栈则是后入栈的元素反而被优先处理. 实际中一般被应用在进程池.排队操作上面. 1. 队列的操作 ...
- 重读LPTHW-Lesson15-17
1.引入sys模块,argv参数变量解包,可以多一种方式获取用户输入: # filename:argv_test.pyfrom sys import argv script,first,second ...
- 一个js爬虫
1. 第一个demo 2. configs详解——之成员 3. configs详解——之field 4. configs详解——之site, page和console 5. configs详解——之回 ...
- TCP/IP Checksum 吐槽
算法原理: 假定 output[2] 为输出结果,input[n]为待计算校验和的内存块. 1)所有奇数位[0,2,4……] byte 累加进 结果的奇数位内存 output[0],如果溢出,则进位给 ...
- Android GUI Building Blocks
说明:此笔记为“Android开发”学习视频的笔记,链接如下:http://open.163.com/movie/2010/1/8/D/M79HE97C3_M79HEQJ8D.html 一, Acti ...
- uva 10004 Bicoloring(dfs二分染色,和hdu 4751代码差不多)
Description In the ``Four Color Map Theorem" was proven with the assistance of a computer. This ...
- iOS 开发常用设置
1. iOS设置app应用程序文件共享 设置流程 xcode 打开项目----在 info.plist 文件,添加 UIFileSharingEnabled 并设置属性为 YES, 在app内部,将您 ...
- WinEdt7.0 初试
刚刚开始学的时候,安装就出了些问题(关于安装的问题,请看我之前的文章)不知道如何点击运行,编译.看了些博客论坛.终于成功了. 首先先写一个小代码: \documentclass[UTF8]{ctexa ...
- Hadoop学习之编译eclipse插件
近期准备開始学习Hadoop1.2.1的源码,感觉最好的方法还是能够在运行Hadoop及hadoop作业时跟踪调试代码的实际运行情况.因为选择的IDE为eclipse,所以准备编译一下hadoop的e ...
- SpringMVC中的异步提交表单
1.前言 近期在做一个项目,前台框架用的是EasyUI+SpringMVC,因为对SpringMVC不太了解,所以刚開始接触的时候有点吃力,在此通过一个EasyUi中的DataGrid表格来总结一下. ...