多线程的实现
发布日期: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秒