概述
/*
* yield 礼让线程,暂停线程 直接进入就绪状态但不是阻塞状态
*/
public class YieldDemo {
public static void main(String[] args) {
new Thread(()->{
for(int i=0;i<100;i++) {
System.out.println("lambda..."+i);
}
}).start();
for(int i=0;i<100;i++) {
if(i%10==0) {
Thread.yield();//main礼让
}
System.out.println("main..."+i);
}
}
}
package com.state;
/*
* join:合并线程,插队线程
*/
public class joinBlock1 {
public static void main(String[] args) throws InterruptedException {
Thread t=new Thread(()->{
for(int i=0;i<100;i++) {
System.out.println("lambda..."+i);
}
});
t.start();
for(int i=0;i<100;i++) {
if(i==20) {
t.join();//main插队
}
System.out.println("main..."+i);
}
}
}
package com.state;
/*
* join:合并线程,插队线程
*/
public class joinBlock2 {
public static void main(String[] args) throws InterruptedException {
System.out.println("爸爸和儿子买烟的故事");
new Thread(new Father()).start();
Thread t=new Thread(new Son());
t.start();
t.join();
System.out.println("老爸接过烟");
}
}
class Father extends Thread{
@Override
public void run() {
System.out.println("没烟了,让儿子买烟");
}
}
class Son extends Thread{
@Override
public void run() {
System.out.println("接过老爸的钱去买烟");
System.out.println("途中打了10秒游戏");
for(int i=1;i<=10;i++) {
try {
Thread.sleep(1000);
System.out.println(i+"秒过去了");
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
System.out.println("发现要去买烟了,拿着烟回家");
}
}
最后
以上就是大方手链为你收集整理的java线程学习3.14的全部内容,希望文章能够帮你解决java线程学习3.14所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复