1)由于资源的有限性以及线程之间运行步调的一致性,多个线程在并发执行时,一方面可能会竞争使用同一类资源,另一方面也可能需要保持一定的先后执行顺序。因此,编写多线程程序时,必须要考虑如何对线程进行有效控制,使它们能够合理地使用资源,并保持正确的执行顺序。
2)Thread类中线程控制方法
3)
1.线程的创建与启动
在程序中用new运算符创建一个线程时,还需要调用线程的start()成员方法,才能使线程从新建状态转换为可运行状态。如果线程获得了其运行所需的全部资源后就可以执行run()方法在CPU上运行。
2.线程的终止
调用线程的stop()成员方法可以终止当前线程的执行,使线程进入死亡状态。从JDK1.2开始,stop()方法已被废弃。
3.线程的挂起和恢复
(1)sleep()方法
void sleep(long millis);
void sleep(long millis,long nanos);
(2) suspend()方法和resume()方法
4.线程的阻塞和唤醒
wait()方法使当前线程阻塞,等待某一事件的发生
void wait(long timeout) throws InterruptedException;
void wait(long timeout,int nanos) throws InterruptedException;
notify()方法用来唤醒一个处于阻塞状态的线程,任何一个已经满足了被唤醒条件的线程都可能被唤醒。而notifyAll()方法则用于唤醒所有处理阻塞状态的线程。
void notify();
void notifyAll();
5.线程的让步
yield()方法可以使当前执行的线程让出CPU给其他线程执行,强制线程间合作。
6.等待其他线程结束
一个线程A调用另外一个线程B的join()方法可以使线程A暂停运行,直至线程B终止。
void join() throws InterruptedException
void join(long timeout) throws InterruptedException
void join(long milliseconds, int nanoseconds) throws InterruptedException
分享到:
相关推荐
并发库高级应用\多线程\Java
张孝祥Java多线程与并发库高级应用学习笔记,很经典的学习多线程和并发的资料。张孝祥Java多线程讲义笔记由张孝祥亲自整理,很实用的。
资源名称:Java多线程与并发库高级应用视频教程22集资源目录:【】01传统线程技术回顾【】02传统定时器技术回顾【】03传统线程互斥技术【】04传统线程同步通信技术【】04传统线程同步通信技术_分割纪录【】05线程...
Java线程:线程栈模型与线程的变量 Java线程:线程状态的转换 Java线程:线程的同步与锁 Java线程:线程的交互 Java线程:线程的调度-休眠 Java线程:线程的调度-优先级 Java线程:线程的调度-让步 Java线程...
详细的讲述了多线程的各种用法 Java线程:概念与原理 Java线程:创建与启动 Java线程:线程栈模型与线程的变量 Java线程:线程状态的转换 Java线程:线程的同步与锁 Java线程:线程的交互 Java线程:线程的调度-休眠...
Java 模拟线程并发 Java, 模拟线程并发,线程,并发 Java, 模拟线程并发,线程,并发 Java, 模拟线程并发,线程,并发 Java, 模拟线程并发,线程,并发
Java线程:概念与原理 2 一、操作系统中线程和进程的概念 2 二、Java中的线程 3 三、Java中关于线程的名词解释 3 四、线程的状态转换和生命周期 4 Java线程:创建与启动 7 Java线程:线程名称的设定及获取 10 Java...
经典Java多线程与并发库高级应用经典Java多线程与并发库高级应用经典Java多线程与并发库高级应用经典Java多线程与并发库高级应用
黑马+传智 Java入门到精通视频教程+课件+代码,30套Java开发项目代码,Java多线程与并发库高级应用视频教程,及电子书,面试题,开发工具等
Java 多线程与并发-Java并发知识体系详解
JAVA多线程与并发学习总结.pdf
Java 多线程与并发(2_26)Java 并发 - 线程基础
java多线程与高并发java多线程与高并发java多线程与高并发
张孝祥Java多线程与并发库高级应用视频教程练习代码 自己根据视频内容练习写的源代码
马士兵老师课程笔记 https://www.bilibili.com/video/BV1of4y1p74A?p=45
Java 多线程与并发(1_26)-Java 并发 - 理论基础