java 多线程(3) 线程的基本概念 / 创建和启动 / run() / start()
2016-01-13 11:12
771 查看
java 线程创建方法
第一种:实现runnable接口。第二种:从thread 类继承
比较:这两种方式选择Runnable 比较好,因为继承线程类比较死,继承了,就不能继承别的类了,实现Runnable ,还能实现其他的接口或者继承其他的类。所以接口实现线程比较灵活。
一个原则:只要能使用接口,就不要用thread 类继承。
第一种:实现runnable接口。第二种:从thread 类继承
比较:这两种方式选择Runnable 比较好,因为继承线程类比较死,继承了,就不能继承别的类了,实现Runnable ,还能实现其他的接口或者继承其他的类。所以接口实现线程比较灵活。
一个原则:只要能使用接口,就不要用thread 类继承。
public class threadTest { public static void main(String[] args) { Runner1 r = new Runner1(); //r.run();//这个叫方法调用,是单线程 //r.start(); // 如果是class Runner1 extends Thread{,则只要这一句即可 Thread thread = new Thread( r); //class Runner1 implements Runnable 这种方式创建则需要new thread,这里面有多态存在 thread.start(); //这个是启动线程,是多线程并行执行。线程启动必须调用thread 类的start() 方法 //因为这个start()方法会通知cpu,我现在有个新线程已经准备好了,你什么时候有空,分给我点时间片。 for( int i=0; i<100; i++){ System. out.println( "main thread:-----"+i);//这个时候要注意,上下两个线程不一定分得的时间片一样,有可能你多一点我少一点,这个很正常 } //cpu 并不是分得那么均匀 } } //class Runner1 implements Runnable { //这是一种创建线程方法,需要new Thread去start 线程 class Runner1 extends Thread{ //这也是一种创建线程的方法,但是已经是thread了,就不用再new thread 了,直接start public void run(){ for( int i=0; i<100; i++){ System. out.println( "Runner1 : "+ i); } } }
相关文章推荐
- Struts(一)由来
- java.util.Collection体系源码解读<三>AbstractCollection抽象类源码解读
- 【java】java设计模式(5):原型模式(Prototype)
- Java的Jackson库的使用及其树模型的入门学习教程
- JAVA API 实现hdfs文件操作
- Spring+EhCache缓存实例(详细讲解+源码下载)
- 《Java知识点列表》V1.0
- struts2默认拦截器之prepare
- java多线程--实现Runnable接口方式
- Java中的数组
- java解析和组装json以及一些方法的理解
- spring容器加载完后事件处理(利用ContextRefreshedEvent事件)
- JAVA 身份证号码有效性验证
- List集合
- struts2中改变struts.xml默认路径
- 解析Java的Jackson库中Streaming API的使用
- 将字符串中的字符进行排序(JAVA编写)
- 尝试《Java Network Programming 4ed》Chapter 11 Channels翻译
- [javase学习笔记]-9.3 子父类中成员变量特征体现
- 【第九章】 Spring的事务 之 9.2 事务管理器 ——跟我学spring3