总结 Thread 类的基本用法

1.认识线程(Thread)

        一个线程就是一个 "执行流". 每个线程之间都可以按照顺讯执行自己的代码. 多个线程之间 "同时" 执行着多份代码

2.为什么要有线程

 首先, "并发编程" 成为 "刚需".

        单核 CPU 的发展遇到了瓶颈. 要想提高算力, 就需要多核 CPU. 而并发编程能更充分利用多核 CPU资源.

其次, 虽然多进程也能实现 并发编程, 但是线程比进程更轻量.

        创建线程比创建进程更快. 销毁线程比销毁进程更快. 调度线程比调度进程更快.

最后, 线程虽然比进程轻量, 但是人们还不满足, 于是又有了 "线程池"(ThreadPool) "协程" (Coroutine)

3.线程创建

        1) 继承 Thread 类

        2 )实现 Runnable接口

        3) 匿名内部类创建 Thread 子类对象

        4) 匿名内部类创建 Runnable 子类对象

        5) lambda 表达式创建 Runnable 子类对象

4.中断线程

方法

说明

public void interrupt()

中断对象关联的线程,如果线程正在阻塞,则以异常方式通知, 否则设置标志位

public static boolean interrupted()

判断当前线程的中断标志位是否设置,调用后清除标志位

public boolean isInterrupted()

判断对象关联的线程的标志位是否设置,调用后不清除标志位

5.线程等待-join()

方法

说明

public void join()

等待线程结束

public void join(long millis)

等待线程结束,最多等 millis 毫秒

public void join(long millis, int nanos)

同理,但可以更高精度

6. 线程休眠

方法

说明

public static void sleep(long millis) throws InterruptedException

休眠当前线程 millis

毫秒

public static void sleep(long millis, int nanos) throws InterruptedException

可以更高精度的休眠

7.获取线程实例

package threading;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: Lenovo
 * Date: 2023-06-01
 * Time: 20:16
 */
class Counter {
    private int count = 0;

    synchronized public void add() {

            count++;

    }

    public int get() { return count; }
}






public class ThreadDemo13 {
    public static void main(String[] args) throws InterruptedException {
        Counter counter = new Counter();

        //搞两个线程,两个线程分别对这个 counter 自增 5w次.
        Thread t1 = new Thread( () -> {
           for(int i =0; i <50000; i++) {
               counter.add();
           }
        });
        Thread t2 = new Thread( () -> {
            for(int i =0; i <50000; i++) {
                counter.add();
            }
        });
        t1.start();
        t2.start();

        // 等待两个线程执行结束,然后看结果
        t1.join();
        t2.join();

        System.out.println(counter.get());

    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值