标签:main 原因 ESS div 进一步 public str 资源 runable
一,基本概念:
-->程序是静态的,进程是动态的。一个程序同一个时间运行多个线程,就是多线程。
二,创建多线程
方式1:继承java.lang.Thread 类
//1.创建一个继承于Thread的子类 class subClass extends Thread{ //2.重写Thread类的Run() 方法,方法内实现此子线程要完成的功能 public void run(){ //.... } } //测试类 public class TestThread{ public static void main(String[] args){ //3. 创建一个子类的对象 SubThread st = new SubThread(); //4. 调用线程的start(),启动此线程;调用相关的run()方法 st.start(); //java.lang.Thread.start(); 会调用run()方法,一个线程只能执行一次start() //....主线程也可以执行自己的操作 } }
方式二:
1 //通过实现的方式创建多线程 2 //1.创建一个实现了Runable接口的类 3 class SubRunable implements Runable{ 4 //2.实现RUnable接口的run() 方法 5 public void run(){ 6 //.... 7 } 8 } 9 10 public class testThrea1{ 11 public static vod main(String[] args){ 12 //3.创建一个RUnable接口实现类的对象 13 SubRunable sub = new SubRunable(); 14 //想要启动一个线程,必须调用start() 15 //4.将此对象作为形参传递给Thread类的构造器中,创建Thread类的对象,此对象就是一个线程 16 Thread t1 = new Thread(sub); 17 //启动线程,执行Thread 对象生成是狗在其形参的对象的run()方法 18 t1.start(); 19 //若启动多个线程 20 Thread t2 = new Thread(sub); 21 t2.start(); 22 } 23 }
比较:联系:public class Thread implements Runable
实现的方式即方式二优于继承的方式
原因:接口可多继承,避免了java单继承的局限性
如果多个线程操作同一份资源(或数据),更适合使用实现的方式,因为不用new 多个Thread对象。
标签:main 原因 ESS div 进一步 public str 资源 runable
原文地址:https://www.cnblogs.com/wsjun/p/9782173.html