| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2194 人关注过本帖, 1 人收藏
标题:关于多线程的两种实现方式
只看楼主 加入收藏
疯狂的小a
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:39
帖 子:423
专家分:1871
注 册:2018-2-6
结帖率:100%
收藏(1)
已结贴  问题点数:20 回复次数:5 
关于多线程的两种实现方式
Java天生支持多线程,但是多线程操作起来有点复杂,平时又用得也不多。多线程能有效的提高程序运行的效率,提高CPU的利用率,但是多线程使用不当又会造成一系列的问题,比如程序死锁等。现在整理两种基本的多线程实现方式如下:
方式一:继承Thread类,重写run方法
程序代码:
package com.xiaoa.thread;

public class MyThread extends Thread {
    @Override
    public void run() {
        super.run();
        System.out.println("MyThread.run()");
    }
}

方式二:实现Runnable接口,重写run方法
程序代码:
package com.xiaoa.thread;

public class MyRunnable implements Runnable{

    @Override
    public void run() {
        System.out.println("MyRunnable.run()");
    }

}

测试代码:
package com.xiaoa.test;

import com.xiaoa.thread.MyRunnable;
import com.xiaoa.thread.MyThread;

public class Test {
    public static void main(String[] args) throws Exception {
        MyThread th1 = new MyThread();
        th1.start();
        
        th1.sleep(100l);
        
        System.out.println("--------------------------");
        
        Thread.currentThread().sleep(100l);
        
        MyRunnable th = new MyRunnable();
        Thread th2 = new Thread(th);
        th2.start();
        
        
    }
}
测试结果:
MyThread.run()
--------------------------
MyRunnable.run()

搜索更多相关主题的帖子: 多线程 thread run com public 
2018-05-20 10:26
a351021817
Rank: 3Rank: 3
等 级:论坛游侠
威 望:6
帖 子:23
专家分:174
注 册:2018-4-26
收藏
得分:10 
实际中大多用Runnable接口来实现,这个最大的好处是可以继承其他类。
2018-05-24 20:08
疯狂的小a
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:39
帖 子:423
专家分:1871
注 册:2018-2-6
收藏
得分:0 
回复 3楼 saiens
能详细说说吗?
Thread不是也实现了runnable接口吗

假如人生没有梦想,和咸鱼有什么区别!
2018-05-30 10:10
壹只小小鸟
Rank: 2
等 级:论坛游民
威 望:1
帖 子:4
专家分:15
注 册:2018-6-16
收藏
得分:0 
回复 3楼 疯狂的小a
java是单继承的,所以用第一种方法有局限性.就是说这个类继承了Thread类就不能再继承其他类了.实现了runnable接口还能继承其他类.
2018-06-16 18:50
疯狂的小a
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:39
帖 子:423
专家分:1871
注 册:2018-2-6
收藏
得分:0 
回复 4楼 壹只小小鸟
所以都是继承类和实现接口,有什么区别吗

假如人生没有梦想,和咸鱼有什么区别!
2018-06-16 21:27
one737
Rank: 2
等 级:论坛游民
威 望:1
帖 子:19
专家分:18
注 册:2021-7-2
收藏
得分:0 
回复 5楼 疯狂的小a
没什么区别,都能用。
看个人习惯了。
2021-07-05 20:23
快速回复:关于多线程的两种实现方式
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021984 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved