- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
java中线与多线程快速入门
进程是指在系统中正在运行的一个应用程序;线程是系统分配处理器时间资源的基本单元,或者说进程之内独立执行的一个单元。对于操作系统而言其调度单元是线程。一个进程至少包括一个线程,通常将该线程称为主线程。一个进程从主线程的执行开始进而创建一个或多个附加线程,就是所谓基于多线程的多任务
创建线程:
线程类继承Thread,重写run()方法,在run()方法中完成此线程所要完成的工作,直接创建线程类的对象,然后调用start()方法启动线程,默认调用run()方法
线程类实现Runnable接口,实现run()方法,在run()方法中完成此线程所要完成的工作;创建线程的时候要注意:
首先创建线程类的对象t,然后通过Thread tt = new Thread(t);来创建线程tt。也是通过调用start()方法来启动线程。
要想创建一个线程类,实质上是必须实现Runnable接口,因为Thread本身也是实现了Runnable接口的。但是如果要调用start()方法来启动一个线程,就必须构建Thread类的对象:如果是用第①中方式创建的线程类,那么他所创建的对象就可以隐式转换成Thread对象,所以可以直接调用start()方法;如果使用第②种方式创建的线程类,那么使用这个线程类创建对象之后,还必须通过这个对象创建一个Thread类的对象。
守护线程:
如何设置成守护线程:setDeamon()
守护线程一般用来为其他的线程提供服务,当其他的线程全部执行完毕以后,无论守护线程是否执行完成都会自动终止。
线程优先级:
优先级范围:1—10
设置线程t优先级的方法:t.setPriority(1--10)
获取线程t优先级的方法:t.getPriority()
线程优先级的默认值是:5
线程优先级为10的优先级最高,为1的最低
Join()方法:
以A,B两个线程为例:如果在线程A中调用B.join()方法,表示让线程A处于等待状态,直到线程B执行结束后才接着执行
Sleep()方法:
Sleep()方法时让当前线程处于等待状态,等待时间由参数决定
Sleep()方法的调用形式:Thread.thread(时间毫秒数);
线程的状态:
线程有五种状态:新生状态,可运行状态,运行状态,阻塞状态和运行结束状态。
当一个线程类在创建了对象之后,就意味这一个线程的产生,在调用start()方法之前为“新生状态”,调用start()方法让线程进入“可运行状态Runnable”,此时的线程可以被线程管理器调度;一旦线程调度(获取到时间片)即从可运行状态进入到“运行状态Running”;在运行过程中遇到阻塞事件(如:sleep(),wait(),锁等待……)便使线程变成了“阻塞状态Blocked”;直到阻塞事件消除(如:notify(),锁释放……)线程有由阻塞状态变回“可运行状态”;当线程执行结束则为“结束状态”。
Wait()方法:
使当前线程进入阻塞状态,直到有notify()方法或者notifyAll()方法唤醒
Notify()方法:
唤醒一个由于wait()方法处于等待的线程
NotifyAll()方法:
唤醒所有由于wait()方法处于等待的线程
创建线程
在Java中,线程也是一种对象,但并非任何对象都可以称为一个线程,只有实现了Runnable接口的类的对象才有资格成为线程,即实现Runnable接口是对象转变为线程的一个必要条件。
public interface Runnable {
public void run();
}
//runnable 字典定义为:可运行的
Runnable接口是一个非常简单的接口,它仅包含一个抽象的run()方法。但是,只有实现了Runnable接口的类的对象才能成为线程。
创建线程的方法如下:
Thread t = new Thread(runnable 对象);
runnable对象是指实现了Runnable接口的类的对象,线程执行时,runnable对象的run()方法会被调用执行。
如果想运行上面创建的线程t,还需要调用Thread的start()方法:t.start();
【示例】这一示例演示了创建并启动线程的方法。
class Runner1 implements Runnable { // 1.Runner1实现Runnable接口
public void run() {
for (int i = 1; i 20; i++) {
System.out.println(i);
}
}
}
public class Thread1 {
public static void main(String[
您可能关注的文档
最近下载
- 2023-2024年部编版语文三年级下册第六单元第二课时《剃头大师》说课稿附完整版.pdf VIP
- 幼儿园食堂食品安全日管控、周排查、月调度制度(含记录).docx VIP
- 物流国内现状.doc VIP
- 八年级物理质量与密度测试题(含答案).pdf
- 【毕业论文】不同地形下植被覆盖度分布规律研究—以龙口为例.doc
- 幼儿园:《从儿童的兴趣到思维——运用探究循环规划幼儿园课程》读后感.docx
- 公共部门人力资源管理..doc VIP
- 行政职业能力测验资料分析90题及答案解析.pdf VIP
- JT/T 1180.21-2018 交通运输企业安全生产标准化建设基本规范 第21部分:公路养护企业.pdf
- 防腐涂料培训.doc
文档评论(0)