JAVA两种创建线程的方法有什么不同?
第一种线程创建的方式有一个弊端:线程与线程要执行的任务定义在了一起,重用性有限。更多时候应该将线程与线程要执行的任务分离开请教高手:第一种方式怎么说明是线程与任务定义在了...
第一种线程创建的方式有一个弊端:
线程与线程要执行的任务定义在了一起,重用性有限。
更多时候应该将线程与线程要执行的任务分离开
请教高手:第一种方式怎么说明是线程与任务定义在了一起,怎样说明了重用性有限
第二种方式怎样看出来的没有定义在一起 ,重用性没限?
理解不了,着急上火,谢谢帮忙。
public class ThreadDemo {
public static void main(String[] args) {
Thread p1 = new Person1();
Thread p2 = new Person2();
p1.start();
p2.start();
}
}
//以下是第一种创建线程的方式
class Person1 extends Thread{
public void run(){
for(int i=0;i<1000;i++){
System.out.println("我是线程1");
}
}
}
class Person2 extends Thread{
public void run(){
for(int i=0;i<1000;i++){
System.out.println("我是线程2");
}
}
}
---------------------------------------------------------------------------------------------------------------------------------
public class ThreadDemo2 {
public static void main(String[] args) {
Runnable runnable1 = new Person3();
Runnable runnable2 = new Person4();
Thread t1 = new Thread(runnable1);
Thread t2 = new Thread(runnable2);
t1.start();
t2.start();
}
}
//以下是第二种创建线程的方式
class Person3 implements Runnable{
public void run() {
for(int i=0;i<1000;i++){
System.out.println("我是线程3?");
}
}
}
class Person4implements Runnable{
public void run() {
for(int i =0;i<1000;i++){
System.out.println("我是线程4");
}
}
} 展开
线程与线程要执行的任务定义在了一起,重用性有限。
更多时候应该将线程与线程要执行的任务分离开
请教高手:第一种方式怎么说明是线程与任务定义在了一起,怎样说明了重用性有限
第二种方式怎样看出来的没有定义在一起 ,重用性没限?
理解不了,着急上火,谢谢帮忙。
public class ThreadDemo {
public static void main(String[] args) {
Thread p1 = new Person1();
Thread p2 = new Person2();
p1.start();
p2.start();
}
}
//以下是第一种创建线程的方式
class Person1 extends Thread{
public void run(){
for(int i=0;i<1000;i++){
System.out.println("我是线程1");
}
}
}
class Person2 extends Thread{
public void run(){
for(int i=0;i<1000;i++){
System.out.println("我是线程2");
}
}
}
---------------------------------------------------------------------------------------------------------------------------------
public class ThreadDemo2 {
public static void main(String[] args) {
Runnable runnable1 = new Person3();
Runnable runnable2 = new Person4();
Thread t1 = new Thread(runnable1);
Thread t2 = new Thread(runnable2);
t1.start();
t2.start();
}
}
//以下是第二种创建线程的方式
class Person3 implements Runnable{
public void run() {
for(int i=0;i<1000;i++){
System.out.println("我是线程3?");
}
}
}
class Person4implements Runnable{
public void run() {
for(int i =0;i<1000;i++){
System.out.println("我是线程4");
}
}
} 展开
展开全部
你可以实现很多借口 但是一个类只能继承一个父类 你用了继承了 那不就不能继承别的了 你实现接口 没什么影响 可以实现很多借口
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没有区别 但是用接口有点好处 你要是用继承的方式实现线程就不不能再去继承别的类 java中没有多重继承
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
extends的话 是2个对象 要同步的话比接口实现麻烦一点点
implements 是同一个对象 要同步很容易
都差不多 随意的
implements 是同一个对象 要同步很容易
都差不多 随意的
追问
线程不是为了异步执行任务吗?
追答
同步的意思是 执行完某一个流程
然后再跳到另外一个线程
如果不同步
那么我执行完一半 就可能跳到另一个线程
这样很多程序就会得不到预想的结果
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询