十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
首先打印1-100数字如果用一个单线程实现那么只要一个for循环即可,那么如果要用两个线程打印出来呢?(一个线程打印奇数,一个线程打印偶数)于是大家会想到可以通过加锁实现,但是这样的效率是不是不高?这里我用一个变量来控制两个线程的输出

public class ThreadTest {
volatile int flag=0;
public void runThread() throws InterruptedException{
Thread t1=new Thread(new Thread1());
Thread t2=new Thread(new Thread2());
t1.start();
t2.start();
}
public class Thread1 implements Runnable{
public void run() {
int i=0;
while(i<=99){
if(flag==0)
{
System.out.println("t1="+i+"flag="+flag);
i+=2;
flag=1;
}
}
}
}
public class Thread2 implements Runnable{
public void run() {
int i=1;
while(i<=99){
if(flag==1)
{
System.out.println("t2="+i+"flag="+flag);
i+=2;
flag=0;
}
}
}
}
}