进阶day06-Thread和Runnable的区别
This commit is contained in:
@@ -1,6 +1,8 @@
|
|||||||
package com.inmind.thread07;
|
package com.inmind.thread07;
|
||||||
|
|
||||||
public class MyThread extends Thread{
|
public class MyThread extends Thread{
|
||||||
|
|
||||||
|
|
||||||
public MyThread(String name) {
|
public MyThread(String name) {
|
||||||
super(name);
|
super(name);
|
||||||
}
|
}
|
||||||
|
|||||||
10
javaSE-day06/src/com/inmind/callable02/Demo2.java
Normal file
10
javaSE-day06/src/com/inmind/callable02/Demo2.java
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
package com.inmind.callable02;
|
||||||
|
/*
|
||||||
|
实现Runnable接口比继承Thread类所具有的优势:
|
||||||
|
1. 适合多个相同的程序代码的线程去共享同一个资源。
|
||||||
|
2. 可以避免java中的单继承的局限性。
|
||||||
|
3. 解耦性(线程管理和线程任务分开,线程任务可以给不同的线程对象执行)
|
||||||
|
4. 线程池只能放入实现Runnable或callable类的线程,不能直接放入继承Thread的类
|
||||||
|
*/
|
||||||
|
public class Demo2 {
|
||||||
|
}
|
||||||
@@ -11,6 +11,8 @@ public class RunnableDemo01 {
|
|||||||
//创建线程任务对象
|
//创建线程任务对象
|
||||||
RunnableImpl runnable = new RunnableImpl();
|
RunnableImpl runnable = new RunnableImpl();
|
||||||
//创建线程对象,并给它设置一个任务
|
//创建线程对象,并给它设置一个任务
|
||||||
|
Thread thread1 = new Thread(runnable);
|
||||||
|
Thread thread2 = new Thread(runnable);
|
||||||
Thread thread = new Thread(runnable);
|
Thread thread = new Thread(runnable);
|
||||||
thread.start();
|
thread.start();
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,8 @@ package com.inmind.thread01;
|
|||||||
//注意:只有Thread类才能表示线程,当前Runnable实现类型,只是用来定义run方法的,所以我们可以把
|
//注意:只有Thread类才能表示线程,当前Runnable实现类型,只是用来定义run方法的,所以我们可以把
|
||||||
//Runnable实现类理解成一个线程任务类
|
//Runnable实现类理解成一个线程任务类
|
||||||
public class RunnableImpl implements Runnable{
|
public class RunnableImpl implements Runnable{
|
||||||
|
int num = 100;//成员变量
|
||||||
|
|
||||||
//ctrl+o:弹出当前类中可以重写的方法
|
//ctrl+o:弹出当前类中可以重写的方法
|
||||||
@Override
|
@Override
|
||||||
public void run() {//新的线程要执行的任务代码
|
public void run() {//新的线程要执行的任务代码
|
||||||
|
|||||||
Reference in New Issue
Block a user