java多线程之创建线程的两种传统方式
2016-11-16 22:45
447 查看
package javaplay.thread.test; public class TraditionalThread { public static void main(String[] args) { // 第一种 Thread thread = new Thread() { @Override public void run() { while (true) { try { Thread.sleep(500); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("1:" + Thread.currentThread().getName()); System.out.println("2:" + this.getName());// 不建议这么做,第二种方式就不能用这种 } } }; thread.start(); // 第二种 更加体现面向对象的思维 把运行代码封装到一个对象中 Thread thread2 = new Thread(new Runnable() { @Override public void run() { while (true) { try { Thread.sleep(500); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("1:" + Thread.currentThread().getName()); } } }); thread2.start(); // new Thread(runnable.run){run}.start(); // 运行start方法就会去找当前对象身上的run方法,如果没找到自己的run方法就用自己父类的run方法 // 父类的run方法会去找runnable,此例的匿名子类覆盖了父类的run方法没有去找runnable,之所以会找runnable // 是因为父类的run方法会去找runnable,只要不覆盖父类的run方法,就会去找runnable,如果覆盖了,就以覆盖的代码为准 new Thread(new Runnable() { @Override public void run() { while (true) { try { Thread.sleep(500); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("runnable:" + Thread.currentThread().getName()); } } }) { public void run() { while (true) { try { Thread.sleep(500); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("thread:" + Thread.currentThread().getName()); } } }.start(); // 创建线程的两种传统方式,总结:查看Thread类的run方法的源代码, // 可以看到其实这两种方式都是在调用Thread对象的run方法,如果Thread类的run方法 // 没有被覆盖,并且为该Thread对象设置了一个Runnable对象,该run方法会调用Runnable对象的run方法 // 多线程下载:去抢了服务器的带宽,服务器可以同时为100个线程提供服务,为每个线程提供20k,一个线程只能是20k } }
相关文章推荐
- 【java并发】传统线程技术中创建线程的两种方式
- java多线程总结一: 线程的两种创建方式及优劣比较
- 【java多线程与并发库】---传统java多线程<2> 线程创建方式
- Java【多线程知识总结(5)】比较继承Thread类创建线程和实现Runnable接口创建线程这两种方式
- java多线程总结一:线程的两种创建方式及比较
- JAVA·多线程:创建线程的两种方式
- 【java并发】传统线程技术中创建线程的两种方式
- Java【多线程知识总结(5)】比较继承Thread类创建线程和实现Runnable接口创建线程这两种方式
- java多线程01:创建线程的两种传统方式
- java多线程总结一: 线程的两种创建方式及优劣比较
- java多线程总结一:线程的两种创建方式及优劣比较
- Java 中的多线程-两种创建方式,定时器的应用,线程的安全问题可以用银行转账来说明
- java多线程总结一:线程的两种创建方式及优劣比较
- Java多线程中线程的两种创建方式及比较代码示例
- 【java并发】传统线程技术中创建线程的两种方式
- java创建线程的两种传统方式
- java多线程总结一:线程的两种创建方式及优劣比较
- (一) Java多线程详解之创建线程的两种方式
- 【java多线程与并发库】---传统java多线程<2> 线程创建方式
- Java基础:多线程之线程创建的两种方式