深化浅出Java多线程(1)-办法join[Java编程]
本文“深化浅出Java多线程(1)-办法join[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
关于Java开辟人员,多线程应当是必须纯熟利用的知识点,分外是开辟基于 Java语言的产品.本文将深化浅出的表述Java多线程的知识点,在后续的系列里 将侧重于Java5由Doug Lea传授供应的Concurrent并行包的计划思惟以及具体实 现与利用.
若何才能深化浅出呢,我的理解是带着问题,而不是泛泛的看.所以该系列 基本以办理问题为主,当然我也非常但愿读者可以提出更好的办理问题的筹划以 及提出更多的问题.由于水平有限,假若有什么错误之处,请大家提出,共同讨 论,总之,我但愿通过该系列我们可以深化理解Java多线程来办理我们实际开辟 的问题.
作为开辟人员,我想没有必要谈论多线程的底子知识,比方什么是线程?若何成立等 ,这些知识点是可以通过书本和Google得到的.本系列主如果若何理 深化解多线程来帮忙我们平常的开辟,比方线程池若何实现?若何利用锁等.
(1)办法Join是干啥用的? 简单答复,同步,若何同步? 怎么实现的? 下面将一一答复.
自从接触Java多线程,一向对Join理解不了.JDK是这样说的:
join
public final void join(long millis)throws InterruptedException
Waits at most millis milliseconds for this thread to die. A timeout of 0 means to wait forever.
大家能理解吗? 字面意思是等候一段时间直到这个线程死亡,我的疑问是那 个线程,是它本身的线程还是调用它的线程的,上代码:
package concurrentstudy;
/**
*
* @author vma
*/
public class JoinTest {
public static void main(String[] args) {
Thread t = new Thread(new RunnableImpl());
t.start();
try {
t.join(1000);
System.out.println("joinFinish");
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
class RunnableImpl implements Runnable {
@Override
public void run() {
try {
System.out.println("Begin sleep");
Thread.sleep(1000);
System.out.println("End sleep");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
后果是:
Begin sleep
End sleep
joinFinish
以上是“深化浅出Java多线程(1)-办法join[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |