Java线程

来源:互联网 发布:适合家政的软件 编辑:程序博客网 时间:2024/06/14 09:40

保证三个线程的顺序执行,可以用join方法,等待线程的结束

t1.join();//等待线程t1执行完再执行t2

package test;

import java.util.ArrayList;
import java.util.List;

public class ThreadUnsafe {
    
    public static List<Integer> numberList=new ArrayList<Integer>();
    public static class AddToList implements Runnable{
        int startnum=0;
        public AddToList(int startnumber){
            
            startnum=startnumber;
        }
        @Override
        public void run() {
            // TODO Auto-generated method stub
            int count=0;
            while(count<100){
                //System.out.print(","+startnum);
                numberList.add(startnum);
                startnum+=2;
                count++;
                if(count%10==0){
                    //System.out.println();
                }
                
            }
        }
        
        
        
    }

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        final Thread t1=new Thread(new AddToList(0));
        final Thread t2=new Thread(new AddToList(1));
        t1.start();
        t2.start();
        
        Thread t3=new Thread(new Runnable(){

            @Override
            public void run() {
                // TODO Auto-generated method stub
                try {
                    t1.join();
                    t2.join();
                    System.out.println("开始");
                    
                    for(int i=0;i<numberList.size();i++){
                        
                        Integer j=numberList.get(i);
                        System.out.print(","+j);
                        if(i%10==0){
                            System.out.println();
                        }
                    }
                    
                    System.out.println("结束");
                } catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                
                
            }
        }
        );
    t3.start();

    }
}





线程其他:

start();//启动线程
getId();//获得线程ID
getName();//获得线程名字
getPriority();//获得优先权
isAlive();//判断线程是否活动
isDaemon();//判断是否守护线程
getState();//获得线程状态
sleep(long mill);//休眠线程
join();//等待线程结束
yield();//放弃cpu使用权利
interrupt();//中断线程
currentThread();//获得正在执行的线程对象

原创粉丝点击