多线程的实现
发布日期:2021-06-27 12:56:02
浏览次数:34
分类:技术文章
本文共 1995 字,大约阅读时间需要 6 分钟。
文章目录
继承Thread
public class MyThread extends Thread{ @Override public void run() { for (int i = 0; i < 10; i++) { System.out.println("床前明月光"+i); } }}
public class Demo1 { public static void main(String[] args) { MyThread thread = new MyThread(); thread.start(); for (int i = 0; i < 10; i++) { System.out.println("汗滴禾下土"+i); } }}
多个线程是通过抢占式并发执行的
实现Runnable接口
/** * 用于给线程执行的任务 */public class MyRunnable implements Runnable{ @Override public void run() { //线程任务 for (int i = 0; i < 10; i++) { System.out.println("床前明月光"+i); } }}
public class Demo { public static void main(String[] args) { //实现Runnable //1.创建任务对象 MyRunnable r =new MyRunnable(); //2.创建一个线程并为其分配一个任务 Thread t =new Thread(r); //执行这个线程 t.start(); for (int i = 0; i < 10; i++) { System.out.println("疑是地上霜"+i); } }}
实现Runnable与继承Thread相比的优势如下:
1.通过创建任务,然后给线程分配的方式来实现多线程,更适合多个线程同时执行相同任务的情况 2.可以避免单继承所带来的局限性 3.任务与线程和本身是分离的,提高程序的健壮性 4.线程池只接受Runnable类型的任务,而不接收Thread类的线程
获取线程的名称
public class Demo2 { /** * 获取线程名称 * @param args */ public static void main(String[] args) { System.out.println(Thread.currentThread().getName()); new Thread(new MRunnable(),"大头兵").start(); } static class MRunnable implements Runnable{ @Override public void run() { //currentThread():获取当前正在执行的线程 System.out.println(Thread.currentThread().getName()); } }}
输出:main大头兵
线程休眠
public class Demo3_sleep { /** * 线程休眠 * @param args */ public static void main(String[] args) throws InterruptedException { //sleep for (int i = 0; i < 10; i++) { System.out.println(i); //Thread.sleep(1000)表明线程每隔1秒钟执行一次,即中间每休眠1000ms执行一次 Thread.sleep(1000); } }}
转载地址:https://blog.csdn.net/weixin_43454088/article/details/117307775 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
关注你微信了!
[***.104.42.241]2024年04月14日 15时14分58秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
AcWing - 区间合并(贪心)
2019-04-28
AcWing - 单链表(模拟)
2019-04-28
AcWing - 双链表(模拟)
2019-04-28
AcWing - KMP字符串(KMP)
2019-04-28
来一个总结吧
2019-04-28
有趣的句子
2019-04-28
每天一道 python 面试题 - Python中的元类(metaclass) 详细版本
2019-04-28
Scrapy(6)Item loader 加载器详解
2019-04-28
每日一道python面试题 - Python的实例,类和静态方法揭秘
2019-04-28
今日金融词汇---新股新债前面的N,是什么?
2019-04-28
每日一道python面试题 - Python的实例,类和静态方法揭秘
2019-04-28
原创专辑来了
2019-04-28
好好做好你喜欢做的事情,并且把它做好
2019-04-28
反馈不足
2019-04-28
人生永远没有太晚的开始
2019-04-28
python 周日福利来了
2019-04-28
状态模式
2019-04-28
跳表SkipList
2019-04-28
跳跃表(Skip list)原理与java实现
2019-04-28
Java 常见的 30 个误区与细节
2019-04-28