韩顺平Java自学笔记 线程

目录

一。并发和并行

二。有关于线程的基本原理

1.第一种创建线程的方式

2.多线程机制

3.第二种创建线程的方式

四。创建线程后的操作

1.线程终止

2.线程的中断

3.线程插队

4.守护线程

五。线程的七大状态

六。线程的同步机制

1.使用场景和作用

九。线程锁

1.互斥锁

2.死锁

3.释放锁

十。最后例题

1.作业一

2.作业二


一。并发和并行

个人理解:多线程就是一个程序可以干很多事

单线程:同一时间,只允许执行一个线程

多线程:同一时间,可以执行多个线程  

例如:一个QQ可以进行多个聊天进程,一个迅雷下载可以进行多个下载的人物。简单来说多线程就是一个程序可以在同一时间执行多个任务。

并发与并行

并发:同一时间多个任务交替执行,造成貌似在同时处理多件事的效果。

例如:一个人既在开车又在打电话

 

例如:单核cpu处理多个进程。

并行:同一时间多个cpu处理多个进程。多核cpu实现并行。

例如:一个人打电话一个人开车

补充:可以通过任务管理器查看电脑进程,可以通过 任务管理器——性能——打开资源监控器——cpu    可以查看自己电脑cpu的状态

通过下列代码可以查看自己电脑cpu为几核

public class CpuNum {
    public static void main(String[] args) {
        Runtime runtime = Runtime.getRuntime();
        int i = runtime.availableProcessors();
        System.out.println(i);
    }
}

二。有关于线程的基本原理

1.第一种创建线程的方式

一共有两种创建方式,实现接口的更具有广泛性(更好使)

继承Thread类,然后重写run()方法

public class Thread1 {
    public static void main(String[] args) {
        Mao mao = new Mao();
        mao.start();
        System.out.println("线程的名字是"+Thread.currentThread().getName());
    }
}

class Mao extends Thread{
    @Override
    public void run() {
        System.out.println("猫猫在喵喵叫。。。");
        System.out.println("线程的名字是"+Thread.currentThread().getName());
    }
}

问题:为什么调用使用的是start方法,而不是run,原因如下图,真正创建线程的是start方法当中的start0方法,而不是run方法。

运行结果:

线程的名字是main
猫猫在喵喵叫。。。
线程的名字是Thread-1

补充:我们通过下面两行代码获取了线程的名字,以证明确实是创建了线程的.其中main线程是主方法自带的线程。Thread-1是我们通过继承Thread创建的

System.out.println("线程的名字是"+Thread.currentThread().getName());

例题:

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值