【Java并发编程】Thread方式创建线程
来源:互联网 发布:最终幻想模型制作软件 编辑:程序博客网 时间:2024/05/17 17:43
实现线程的两种方式
在Java语言中,有两种方式使用线程
1. 使用Thread对象本身来创建一个新的线程,并且在其中执行异步逻辑处理(所谓的异步,就是我们把进程创建的,给我们执行操作的线程默认是主线程,当我们在这个主线程中又创建了一个新的线程来执行其他任务的时候,我们常常称新的线程处理的是异步任务)。
2. 另外一种就是将异步逻辑封装成一个任务,将任务交给Executor处理。
第一种方法是比较基础,后一种稍微高级一点。我们先了解第一种方式,后续的博客了解第二种方式。
Thread方式
一般来说,使用Thread在编程上有两种写法。
第一种写法
new Thread(new Runnalbe() { @Override public void run() { //在这里执行的逻辑就是在一个新的线程中了 //可以尝试在这里打印当前的线程的信息,并与在外部打印进行比较 }}).start();
我们创建了一个Thread对象,该对象接受一个Runnable对象来处理另一个线程中的逻辑。于是我们又创建了Runnable对象来处理异步逻辑,最后我们调用Thread类的start方法来运行启动线程。新的线程是有独特的名称的,可以通过Thread类的方法来打印当前线程的id、名称等。
int threadId = Thread.currentThread().getId();int threadName = Thread.currentThread().getName();
第二种写法
public class MyThread extends Thread { @Override public void run() { //在这里执行的逻辑就是在一个新的线程中了 //可以尝试在这里打印当前的线程的信息,并与在外部打印进行比较 }}... ...//在main函数或其他入口执行new MyThread().start();
这种写法创建了一个新的类,这里起名字MyThread,该类继承自Thread,我们重写run方法,最后我们创建MyThread对象,并调用继承而来的start方法。同样,run方法中将执行异步逻辑。
虽然两种方法都可以得到正确的结果,但是你应该使用第一种,因为第二种要求你的任务一定是Thread的子类,Java种一个类只能继承一个类,那么这将强迫你将任务类封装在Thread的子类中,不灵活。虽然现在可能还不明显。第二个原因在于,我们前面说的更高级的方式Executor就是采用了第一种Runnable的写法,使用第一种,有助于后面的理解。
阅读全文
0 0
- 【Java并发编程】Thread方式创建线程
- java并发编程实践 part 01 --> 线程创建方式
- JAVA 并发编程随笔【五】Thread线程创建及运行线程任务
- JAVA并发编程--守护线程(Damon Thread)
- Java并发编程:线程创建
- java并发编程-创建线程
- (十)java并发编程--创建和启动线程(java.lang.Thread 、java.lang.Runnable)
- java并发编程---如何创建线程以及Thread类的使用
- 并发编程<三>线程实现方式Thread,Runnable
- Java并发编程--Thread
- Java并发编程:如何创建线程
- JAVA 并发编程-线程创建(二)
- Java并发编程:如何创建线程
- Java并发编程:如何创建线程?
- Java并发编程:如何创建线程?
- 并发编程(3)java创建线程
- Java并发编程:如何创建线程?
- Java并发编程:如何创建线程?
- 在子线程创建并显示一个Toast
- 三种经典iPhone上网络抓包方法详解
- databinding使用include
- 程序员为什么要写周报?
- 弃农药坑回归编程之路
- 【Java并发编程】Thread方式创建线程
- Android的数据存储方式之一——SharedPreferences
- iOS 录制屏幕
- 字节大小端
- python中报错ValueError: invalid \x escape
- [Sonatype Nexus]Ubuntu、Nexus搭建Maven私有仓库
- mysql 修改字符集编码为utf8mb4
- 给JAVA初学者的50个忠告
- Shell编程-awk