韫钰笔记--java--多线程

多线程

线程创建的几种方式

1、继承Thread

//继承Thread实例
public class aThread extends Thread{
    //继承Thread后一定要重写run方法
    public void run(){
        for (int i = 0; i < 100; i++) {
            //获取当前线程名字
            System.out.println(Thread.currentThread().getName()+":"+i);
        }
    }
    
    public static void main(String[] args) {
        //创建线程对象
        aThread a1 = new aThread();
        aThread a2 = new aThread();
        //启动线程
        a1.start();//启动线程一定是调用srart方法不是run方法
        a2.start();//因为调用run方法就不是线程方式执行了
    }
  
执行结果:
Thread-0:0
Thread-0:1
Thread-1:0
Thread-1:1
Thread-0:2
Thread-0:3
。。。。

2、实现Runnable接口:可实现数据共享和多继承接口这是Thread所没有的:例如抢票案例

//实现Runnable接口实例
public class aThread2 implements Runnable{
    public void run() {
        for (int i = 0; i < 100; i++) {
            //获取当前线程名字
            System.out.println(Thread.currentThread().getName()+":"+i);
      }
 }
    
    public static void main(String[] args) {
            //创建线程对象
            Runnable runnable = new aThread2();
            //后面可以自定义名称
            Thread a1 = new Thread(runnable,"韫钰1号");
            Thread a2 = new Thread(runnable,"默默2号");
            //启动线程
            a1.start();//启动线程一定是调用srart方法不是run方法
            a2.start();//因为调用run方法就不是线程方式执行了
    }    
​
执行结果:
默默2号:0
默默2号:1
韫钰1号:0
默默2号:2
默默2号:3
韫钰1号:1
。。。。

3、lambda表达式(jdk1.8)或者线程池(底层也是上面两种方式实现)

线程也有就绪、阻塞和运行三种基本状态。 (五种就加上 创建状态 和 死亡状态)

就绪状态是指线程具备运行的所有条件,逻辑上可以运行,在等待处理机;

运行状态是指线程占有处理机正在运行;

阻塞状态是指线程在等待一个事件(如某个信号量),逻辑上不可执行。每一个程序都至少有一个线程,若程序只有一个线程,那就是程序本身。

线程方法

synchronized:线程加锁

未完待续。。

个人笔记--也摘抄了来自个网站的资源和自己总结

                                              感谢默默的陪伴

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值