黑马程序员技术交流社区
标题:
谁能告诉我多线程创建的三种方式分别是什么?
[打印本页]
作者:
官珺伟
时间:
2014-4-22 15:32
标题:
谁能告诉我多线程创建的三种方式分别是什么?
本帖最后由 官珺伟 于 2014-4-22 19:33 编辑
谁能告诉我多线程创建的三种方式分别是什么?
用简单的代码就可以。别搞得太复杂
作者:
阿旺
时间:
2014-4-22 15:37
java5以前,有如下两种:
有两种实现方法,分别使用new Thread()和new Thread(runnable)形式,第一种直接调用thread的run方法,所以,我们往往使用Thread子类,即new SubThread()。第二种调用runnable的run方法。
第一种:
new Thread(){}.start();这表示调用Thread子类对象的run方法,new Thread(){}表示一个Thread的匿名子类的实例对象,子类加上run方法后的代码如下:
new Thread(){
public void run(){
}
}.start();
第二种:
new Thread(new Runnable(){}).start();这表示调用Thread对象接受的Runnable对象的run方法,new Runnable(){}表示一个Runnable的匿名子类的实例对象,runnable的子类加上run方法后的代码如下:
new Thread(new Runnable(){
public void run(){
}
}
).start();
第三种:使用线程池从java5开始,还有如下一些线程池创建多线程的方式:
ExecutorService pool = Executors.newFixedThreadPool(3)
for(int i=0;i<10;i++)
{
pool.execute(new Runable(){public void run(){}});
}
Executors.newCachedThreadPool().execute(new Runable(){public void run(){}});
Executors.newSingleThreadExecutor().execute(new Runable(){public void run(){}});
作者:
z1342802487
时间:
2014-4-22 15:44
java有两种方法创建线程,一种是扩展java.lang.Thread类,另一种是通过实现java.lang.Runnable接口。
不管使用哪一种方法创建线程,都必须使用run方法。因为执行一个线程就是执行run方法里的代码。Thread类和Runnable接口提供的run方法没有提供任何操作,因此,在创建线程时要覆盖run方法,以实现多线程的目的。
作者:
姜姗姗
时间:
2014-4-22 18:10
创建线程方式之一
继承Thread类
1,子类覆盖父类中的run方法,将线程运行的代码放在run方法中
2,建立子类对象的同时线程也被创建
3,通过调用start方法开启线程(start方法会自动调用run方法)
创建线程方式之二
实现Runable接口
1,子类覆盖接口中的run方法
2,同诺Thread类创建线程吗,并实现了Runnable接口的子类对象作为参数传递 给了Thread的类的构造函数
3,Thread类对象调用start方法开启线程
(第二种创建线程方式,源于查阅了Thread的构造方法)
复制代码
作者:
思绪
时间:
2014-4-22 18:45
如何实现多线程的?
线程:就是进程中一个独立的控制单元。
线程在控制着进程的执行。一个进程中至少存在一个线程。
创建线程的第一种方式:继承Thread类。
步骤:
1)定义类继承Thread。
2)复写Thread类中的run方法。
3)调用线程的start方法,
该方法两个作用:启动线程,调用run方法。
创建线程的第二种方式:实现Runable接口
步骤:
1)定义类实现Runable接口
2)覆盖Runable接口中的run方法。
3)通过Thread类建立线程对象。
4)将Runable接口的子类对象作为实际参数传递给Thread类的构造函数。
5)调用Thread类的start方法开启线程并调用Runable接口子类的run方法。
作者:
Kelvinhu
时间:
2014-4-22 19:07
zengming13 发表于 2014-4-22 15:43
定时器也是一种创建线程的方式啊
0 0定时器。。不能算作是多线程。。一个定时器只能一个线程
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2