JAVA线程初识

  • 线程与进程

1、进程是有独立运行空间的应用程序。

线程是进程中的一个执行路径,多个线程共享同一空间,线程之间可以随意切换。是进程的进一步划分。

2、线程调度

分时调度   轮流使用

抢占式调度   优先级

  • 同步与异步&并发与并行
  1. 同步与异步

同步:排队执行,效率低安全性高

异步:同时执行,效率高安全性低

  1. 并发与并行

并发:时间段内同三执行

并行:同一时刻内同时执行

  • 继承Thread

重写run方法,通过start启动

线程抢占

匿名内部类的快速使用

每个线程都拥有自己独立的栈空间,共用一份堆内存

  • 实现Runnable接口(常用)

 

  • Thread类详解

构造方法:1,任务  2,名称

方法

getName() 返回名称

getID() 返回Id

       getPriority()  返回优先级

       setPriority()  设置优先级

       start()  启动

       sleep()  休眠  1,毫秒  2.纳秒

setDaemon()  编辑偶极是否为守护线程/用户线程

  • 设置和获取线程名称

  • 线程休眠

1秒 = 1000毫秒

  • 线程阻塞

耗时操作,所有消耗时间的操作(读取文件)

  • 线程中断

一个线程是否结束应该有其自身决定

Stop过时,给线程打标记

标记后进入Catch块,,释放资源,返回自己结束线程

  • 守护线程

在启动前设置

十一、线程安全问题

      

多线程相互修改,在还没count—时,另外的进程进入while循环

排队执行 解决方案

  1. 同步代码块(隐式锁)

锁对象应该为同一锁对象(注释内的正确)

  1. 同步方法(隐式锁)

整合成方法加上修饰符

锁对象   非静态为this

静态为类名.class

  1. 显式锁

l.lock()           上锁

l.unlock()       开锁

十二、公平锁与非公平锁

       公平锁:

       非公平锁:

十三、线程死锁

       两个线程互相等待导致死锁,解决:在有锁的地方不要再调另一个锁

十四、多线程通信

       生产者生产完毕消费者开始消费

      

唤醒和沉睡

十五、线程的六种状态

十六、带返回值的线程Callable

      

十七、线程池概述

       线程容器

       频繁创建线程降低效率

四种线程池

1、缓存线程池

2、定长线程池

3、单线程线程池

4、周期任务 定长线程池

十八、Lambda表达式

       函数式编程思想

      

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值