您的位置:首页 > 编程语言 > Java开发

Java基础-多线程实现顺序执行

2017-03-06 16:27 531 查看
1.效果图:



2.代码:

//可以继承Thread重写run函数
public class MultipleThreadStudy extends Thread {
/*
MultipleThreadStudy(){}
MultipleThreadStudy(String name){
super(name);
}*/
//重写Thread的run函数
public void run(){
for(int i=0;i<10;i++)
{
System.out.print("MultipleThreadStudy:i="+i);

try
{
Thread.sleep((int)Math.random()*1000);
}
catch(Exception e)
{
e.printStackTrace();
}
System.out.println("");
}
}

//******************************************多线程*********************************************************
//不论是用继承的Thread方法还是用Runnable接口实现的方法,java里面的多个线程同时运行时,不是顺序执行,而是并行执行
//如果需要顺序执行,则需加判断前一个线程是否执行完毕
//如果要顺序执行,方法一:判断线程isAlive是否在运行中,不停循环直至结束
//方法二:调用join方法
//快捷键注释代码:Ctrl+Shift+/ (/* */ 形式的) 或 Ctrl+/ (// 形式的)
//快捷键取消注释:Ctrl+Shift+\ (/* */ 形式的) 或 Ctrl+/ (// 形式的)
public static void main(String[] args) {
//************继承Thread重写run函数的线程***************
MultipleThreadStudy thread1=new MultipleThreadStudy();
MultipleThreadStudy thread2=new MultipleThreadStudy();
MultipleThreadStudy thread3=new MultipleThreadStudy();
//thread1.setPriority(1); //设置优先级
//thread2.setPriority(2);
//thread3.setPriority(3);
System.out.println("............thread1 run...............");
thread1.start();
//方法一:判断线程isAlive是否在运行中,不停循环直至结束
while(thread1.isAlive())
{
try
{
Thread.sleep(100);
}
catch(Exception e)
{
e.printStackTrace();
}
}
System.out.println("............thread2 run...............");
thread2.start();
while(thread2.isAlive())
{
try
{
Thread.sleep(100);
}
catch(Exception e)
{
e.printStackTrace();
}
}
System.out.println("............thread3 run...............");
thread3.start();
while(thread3.isAlive())
{
try
{
Thread.sleep(100);
}
catch(Exception e)
{
e.printStackTrace();
}
}

//************实现Runnable的接口方法run函数*************
Runnable rb1=new RunnableThread();
Runnable rb2=new RunnableThread();
Runnable rb3=new RunnableThread();
Thread runnableThread1=new Thread(rb1);//鼠标移到Thread,按alt+/的方式看需传的参数
Thread runnableThread2=new Thread(rb2);
Thread runnableThread3=new Thread(rb3);
System.out.println("...runnableThread1 run...");
runnableThread1.start();
//方法二:调用join方法
try
{
runnableThread1.join();
}
catch(Exception e)
{
e.printStackTrace();
}
System.out.println("...runnableThread2 run...");
runnableThread2.start();
try
{
runnableThread2.join();
}
catch(Exception e)
{
e.printStackTrace();
}
System.out.println("...runnableThread3 run...");
runnableThread3.start();
}
}
//可以实现Runnable的接口方法run函数
class RunnableThread implements Runnable{
public void run(){
for(int i=0;i<10;i++)
{
System.out.print("RunnableThread:i="+i);

try
{
Thread.sleep((int)Math.random()*1000);
}
catch(Exception e)
{
e.printStackTrace();
}
System.out.println("");
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息