你的懂得的线程
来源:互联网 发布:淘宝买鲜花会折么 编辑:程序博客网 时间:2024/05/16 15:56
1:进程与线程的描述:
进程:每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销,一个进程包含1~n个线程。(进程是资源分配的最小单位)
线程:同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切换开销小。(线程是cpu调度的最小单位)
2:实现多线程的常用方式:
继承Thread类
实现Runnable接口
3:多线程实现方式区别
推荐使用Runnable接口:原因有二:1 Java中的类仅仅只支持单继承,而接口支持多继承
2 使用Runnable接口可以轻松的实现多个线程间的资源共享
4:线程的状态:详见图:
5:常用函数说明
1:join线程(控制线程):
Thread提供了让一个线程等待另一个线程完成的方法--join方法,当在某个程序执行流中调用其他线程的join方法,调用线程将被阻塞,直到被join方法加入的join线程执行完毕为止。
2:yield线程(线程让步):线程的优先级
Thread.yield()方法作用是:暂停当前正在执行的线程对象,并执行其他线程。
yield()应该做的是让当前运行线程回到可运行状态,以允许具有相同优先级的其他线程获得运行机会。因此,使用yield()的目的是让相同优先级的线程之间能适当的轮转执行。但是,实际中无法保证yield()达到让步目的,因为让步的线程还有可能被线程调度程序再次选中。
3:sleep()函数和yield函数的区别
sleep()和yield()的区别):
1:sleep()使当前线程进入停滞状态,所以执行sleep()的线程在指定的时间内肯定不会被执行;
yield()只是使当前线程重新回到可执行状态,所以执行yield()的线程有可能在进入到可执行状态后马上又被执行。
2:sleep()函数也可以允许优先级较低的线程运行
4:线程的优先级
setPriority(): 更改线程的优先级。
MIN_PRIORITY = 1
NORM_PRIORITY = 5
MAX_PRIORITY = 10
进程:每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销,一个进程包含1~n个线程。(进程是资源分配的最小单位)
线程:同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切换开销小。(线程是cpu调度的最小单位)
2:实现多线程的常用方式:
继承Thread类
实现Runnable接口
3:多线程实现方式区别
推荐使用Runnable接口:原因有二:1 Java中的类仅仅只支持单继承,而接口支持多继承
2 使用Runnable接口可以轻松的实现多个线程间的资源共享
4:线程的状态:详见图:
5:常用函数说明
1:join线程(控制线程):
Thread提供了让一个线程等待另一个线程完成的方法--join方法,当在某个程序执行流中调用其他线程的join方法,调用线程将被阻塞,直到被join方法加入的join线程执行完毕为止。
2:yield线程(线程让步):线程的优先级
Thread.yield()方法作用是:暂停当前正在执行的线程对象,并执行其他线程。
yield()应该做的是让当前运行线程回到可运行状态,以允许具有相同优先级的其他线程获得运行机会。因此,使用yield()的目的是让相同优先级的线程之间能适当的轮转执行。但是,实际中无法保证yield()达到让步目的,因为让步的线程还有可能被线程调度程序再次选中。
3:sleep()函数和yield函数的区别
sleep()和yield()的区别):
1:sleep()使当前线程进入停滞状态,所以执行sleep()的线程在指定的时间内肯定不会被执行;
yield()只是使当前线程重新回到可执行状态,所以执行yield()的线程有可能在进入到可执行状态后马上又被执行。
2:sleep()函数也可以允许优先级较低的线程运行
4:线程的优先级
setPriority(): 更改线程的优先级。
MIN_PRIORITY = 1
NORM_PRIORITY = 5
MAX_PRIORITY = 10
阅读全文
0 0
- 你的懂得的线程
- 一篇教会你懂得爱的文章
- sql server 要你懂得的基本知识。。。
- 你应该懂得的网络知识
- 你懂得“下属”的想法吗?
- 你真的懂得margin么?
- 程序员的七夕节故事 你懂得
- 你真的懂得margin么
- 你懂得!新的一周开始了
- 获取某些视频,你懂得的
- Ubuntu懂得呵护你的眼
- 我以为你懂的。懂得我是特别的
- 我以为你懂的。懂得我是特别的
- 一些难懂的笑话,看看你懂得多少? [转帖]
- 必须懂得投机的本质,你了解市场吗?
- 女孩,你知道成为人妻前需要懂得的事吗?
- 失败是成功的那啥 ... 你懂得 ... ^*^
- RMQ你让我懂得了dp的强大
- c#中隐藏,重写的区别
- 微信小程序应用—SmallReader微阅读的实现
- 物品无限的背包问题
- Aborted (core dumped)
- linux route命令的使用详解
- 你的懂得的线程
- 问题2:Eclipse中Maven-pom聚合项目通过Tomcat自动部署步骤及部分问题
- 0708网络编程
- 算法概论第八章练习题 8.10
- QT 一个widget设置多个tooltips
- spring的事务传播行为及事务隔离级别
- Stiring,StringBuffer,StringBuilder的比较及其常用方法
- 每天10个Linux命令五
- hdu1002 A + B Problem II 大数