多线程笔记——1

在学习多线程的时候首先我们要清楚一线问题:

1进程:系统分配资源和调度的独立单位,线程: 进程中独立运行的子任务

2多线程的实现方式  集成Thread类和实现Runnable接口

3线程的执行顺序与调用顺序无关的,start()方法会通知“线程规划器”,由它启动一个线程来执行run()方法

4Thread类其实也是实现的Runnable接口 其源码中定义为: class Thread implements Runnable

5“互斥区”“临界资源”指的是加锁的代码块

6println(i++)存在的线程安全问题,println是安全的,但是i++的执行是在println之前的

7currentThread()返回的是当前正在被哪个线程调用的信息

8isAlive() 是判断线程是否还活着,即已启动,尚未终止的线程

9sleep()是让当前线程休眠,getId()是获取线程的唯一标示

10 停止线程  Thread.stop() 暴力停止,释放锁后会产生不良后果,不建议使用。

                      interrupt,并不是停止,只是打了个停止的标记,但是线程还在 运行

                      判断线程的状态 this.interrupted执行后标志清除为false

                                                this.isInterrupted 不清除标志

                     使用异常法来终止线程.,即对当前线程的状态进行判断,如果标记为停止就抛出一个异常,终止线程

                     如果线程在sleep状态下被停止,则会抛出异常

                    使用return方法来停止线程

11暂停一个线程

suspend()暂停 resume唤醒  缺点独占资源

12 yield方法的作用是让线程放弃当前的cpu资源,但是可能刚放弃立马就获得

13 线程的优先级

     分为1~10这10个等级,若果不在这个范围,就会抛出IllegalArgumentException()

    jdk有三个常亮来定义优先级

             MIN_PRIORITY =1

            NORM_PRIORITY=5

           MAX_PEIORITY =10

14 守护线程

    最典型的就是gc

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值