Java多线程的创建和启动
来源:互联网 发布:在党规党纪面前知敬畏 编辑:程序博客网 时间:2024/04/20 05:33
参考:李刚《疯狂java讲义》
线程的创建和启动
一、 继承Thread类创建并启动多线程
步骤:
1. 定义Thread类的子类,并重写该类的run方法,run方法的方法体代表了线程要执行的任务;
2. 创建Thread类的子类的实例,即创建了线程对象;
3. 用线程对象的start方法来启动线程。
代码示例:
//通过继承Thread类来创建线程类public class Test extends Thread{private int i ;//重写run方法,run方法的方法体就是线程执行体public void run(){for ( ; i < 20 ; i++ ){//当线程类继承Thread类时,可以直接调用getName()方法来返回当前线程的名。//如果想获取当前线程,直接使用this即可//Thread对象的getName返回当前该线程的名字System.out.println(getName() + " " + i);}} public static void main(String[] args) { for (int i = 0; i < 20; i++) { //调用Thread类的静态方法currentThread获取当前线程对象,实例的getName获得线程名System.out.println(Thread.currentThread().getName() + " " + i);if (i == 6){//创建、并启动第一条线程new Test().start();//创建、并启动第二条线程new Test().start();} } }}
输出为:
main 0
main 1
main 2
main 3
main 4
main 5
main 6
Thread-0 0
Thread-0 1
Thread-0 2
Thread-0 3
Thread-0 4
Thread-0 5
Thread-0 6
Thread-0 7
Thread-0 8
Thread-0 9
Thread-0 10
Thread-0 11
Thread-0 12
Thread-0 13
Thread-0 14
Thread-0 15
Thread-0 16
Thread-0 17
Thread-0 18
Thread-0 19
main 7
main 8
main 9
main 10
main 11
main 12
main 13
main 14
main 15
main 16
main 17
main 18
main 19
Thread-1 0
Thread-1 1
Thread-1 2
Thread-1 3
Thread-1 4
Thread-1 5
Thread-1 6
Thread-1 7
Thread-1 8
Thread-1 9
Thread-1 10
Thread-1 11
Thread-1 12
Thread-1 13
Thread-1 14
Thread-1 15
Thread-1 16
Thread-1 17
Thread-1 18
Thread-1 19
一、 实现runnable接口创建线程类
1. 定义runnable接口的实现类,重写该接口的run方法;
2. 创建runnable实现类的实例,并以此实例作为Thread的target来创建Thread对象,该Thread对象才是真正的线程对象。
3. 用线程对象的start方法来启动线程。
实例代码:
//通过实现Runnable接口来创建线程类public class Test implements Runnable{private int i ;//run方法同样是线程执行体public void run(){for ( ; i < 100 ; i++ ){//当线程类实现Runnable接口时,//如果想获取当前线程,只能用Thread.currentThread()方法。System.out.println(Thread.currentThread().getName() + " " + i);}} public static void main(String[] args) { for (int i = 0; i < 100; i++) {System.out.println(Thread.currentThread().getName() + " " + i);if (i == 20){Test st = new Test();//通过new Thread(target , name)方法创建新线程new Thread(st , "新线程1").start();new Thread(st , "新线程2").start();} } }}
从输出可以看到,两个线程的变量i的变化时连续的,也就是使用runnable接口的线程可以共享线程类的实例属性,因为在这种情况下,程序创建的runnable对象只是线程的target,而多条线程可以共享一个target,所以线程可以共享线程类的实例属性(实际上是线程的target类)。
- Java多线程的创建和启动
- 多线程的创建和启动
- Java基础-多线程-①线程的创建和启动
- Java基础-多线程-①线程的创建和启动
- java中多线程的创建和启动(1)
- Java基础-多线程-①线程的创建和启动
- java多线程(一) 创建和启动
- [疯狂Java]多线程:创建和启动线程
- Java多线程之线程创建和启动
- java多线程之创建和启动线程
- Java多线程的创建及启动
- java并发多线程,线程的创建启动
- 多线程01--线程的创建和启动
- 多线程的创建、启动
- (一)线程的创建和启动--java 多线程编程的那点小事
- java多线程:创建与启动
- java多线程1-创建启动
- JAVA多线程_目录(原理、创建和启动)
- QSettings 自定义格式
- Qt查看主机信息如ip/hardware address/netmask等
- python操作Excel word
- GEF基础入门(2)-GEF MVC介绍
- C++_运算符重载
- Java多线程的创建和启动
- c++链接access
- 合理利用Viz Artist脚本中的数组Array
- C++ 单件模式的初探 [此文代码有误,未更改]
- 嵌入式Linux之我行——S3C2440上MMC/SD卡驱动实例开发讲解(二)
- vc++ 6.0不能打开工程或文件
- 第一周 第一天
- Qt stylesheet 点滴
- perl关于qw以空格为分隔符的问题以及若干替代方案+学会变通+split函数的使用