多线程(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执行权。
线程:就是进程中的一个负责程序执行的控制单元,相当于进程中的一条执行路径。
一个进程可以有多个执行路径,称为多线程,但是至少要有一个线程。
线程的创建方法:
继承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线程被开启。
相关文章推荐
- 多线程应用-函数方式(thread)
- 多线程(八)~ThreadLocal、InheritableThreadLocal的使用
- Java 多线程:extends Thread Class & implements Runnable Interface
- Java Thread 多线程 线程池 from 博客园 hoojo
- [java多线程] - Thread&Runnable运用
- ios笔记-- 多线程应该知道的那几件事 GCD NSThread NSOperation
- 采用_beginthread/_beginthreadex函数创建多线程
- dpdk-gcc 多线程关键字 __thread
- 多线程之NSThread、Cocoa NSOperation、GCD
- iOS多线程编程之NSThread的使用
- 多线程继承Thread类
- Android多线程-Thread的理解和使用
- Java多线程系列--“基础篇”03之 Thread中start()和run()的区别
- 多线程 AfxBeginThread 与 CreateThread 的区别
- Boost::Thread 多线程的基础知识
- ios多线程之NSThread
- Java创建多线程的三种方式---Thread
- 【Boost】boost库中thread多线程详解4——谈谈recursive_mutex(递归式互斥量)
- 多线程系列(2)线程池ThreadPool
- IOS学习笔记23—多线程之NSThread、NSOperation、NSInvocationOperation