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

多线程(Thread)

2018-03-22 23:38 106 查看
进程:正在进行中的程序,在内存中开辟的空间。
线程:就是进程中的一个负责程序执行的控制单元,相当于进程中的一条执行路径。
一个进程可以有多个执行路径,称为多线程,但是至少要有一个线程。
线程的创建方法:

继承Thread类(开发中不常用)
    1,定义一个类继承Thread类。
    2,覆盖Thread类中的run方法。
    3,直接创建Thread的子类对象创建线程。
    4,调用start方法开启线程,并调用线程的任务run方法执行。//假设继承Thread的类为ThreadDemo,且覆盖了Thread类中的run方法。
public static void main(String[] args){
    ThreadDemo d1 = new ThreadDemo("d1");
    ThreadDemo d2 = new ThreadDemo("d2");
    d1.start();
    d2.start();
}
实现Runnable接口(开发中常用)
    1,定义类实现Runnbale接口。
    2,覆盖接口中的run方法,将线程的任务代码封装到run方法中。
    3,通过Thread类创建线程对象,并将Runnable接口的子类对象作为Thread类的构造函数的参数进行传递。//假设实现Runnable接口的类为ThreadDemo,并覆盖了Runnable中的run方法。
public static void main(String[] args){
    ThreadDemo d = new ThreadDemo();
    Thread t1 = new Thread(d);
    Thread t2 = new Thread(d);
    t1.start();
    t2.start();
}多线程中线程的join()方法:用来使main线程进入阻塞状态,进而等待调用join方法的线程执行。即main线程释放cpu执行权,等待调用join()方法的线程执行完毕之后,main线程才再次获得cpu执行权。
public static void main(String[] args) {
System.out.println("Main Thread Start..."+new Date());
CreateThreadTest ctt = new CreateThreadTest();
Thread t1 = new Thread(ctt,"t1");
Thread t2 = new Thread(ctt,"t2");
try{
t1.start();
t1.join();
t2.start();
}catch(Exception e){
e.printStackTrace();
}
}
上述例子的结果是,t1线程执行结束后,main线程获取cpu执行权,t2线程被开启。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java基础知识