java(6) 多线程(1)

1.进程

一个独立的应用程序

操作系统多任务,一个操作系统可以同时运行多个进程,多个独立的应用程序

一个进程包含多个线程

音乐播放器:一个独立的应用程序,这个音乐是独立的应用程序,可以一边放歌曲(线程),一般播放歌词(线程)

2.线程

启动是不受程序员的控制一个存在于独立应用程序的单元。

为什么要有线程?线程作用:

1。提高程序的执行能力和性能:一个任务可以拆分给多个线程来共同完成。(例如房子有一个人打扫和多个人打扫,区别是很明显的)

2。解决应答系统服务器端阻塞的情况。socket

         使用多线程:处理多线程并发的安全
 *  安全:从面向对象角度,类中的属性私有,private,提高数据访问的安全性,一个线程。
 *   从对线程并发角度 一个商品,抢购秒杀,多个人去枪,多个人中只能由一个人完成一件商品定制成功,没有安全的控制,会导致数据出现错误     。

3.协程

JDK8是没有协程编程,协程是个被程序员控制的一个单元,用户线程。

1.什么是主线程   Thread.currentThread().getName()  获取线程的名字
2.创建线程:5+1(lambda)  方式
 
           2.1  继承Thread  2.2 实现Runnable   2.3 定时线程     2.4带有返回值线程   2.5 线程池
         
           1(lambda) 

线程可执行方法,线程去执行的方法  严格定义public void run()

 继承Thread:

          ut.start();  启动一个线程  产生一个新的线程
           ut.run();  方法调用 main线程  

线程可执行方法,线程去执行的方法  严格定义public void run()

实现Runnable:

Runnable接口是Thread的父类

 

用那种更好?为什么?

 实现Runnale更好,还可以继承另外一个父类 

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

一个线程启动完毕后,不能再次启动

JMM  java内存模型    JVM java虚拟机:

n1 n2 n3.....申明的都在栈内存      

 线程随机的,不受程序员控制,被JVM虚拟机调度

优先级:1--10 默认为5,setPriority设置线程优先级     结果是:相对保证,不是绝对保证

 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

接口同步回调  异步回调:javach8 code7    2.17上2.20

         * 用户把插入的数据库的业务交给了DB类


         * 插入数据库后   同步


         * 插入数据同时去  异步
           用户同时可以去做其它的业务

.。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

匿名内部类  lambda表达式:

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

线程的生命周期:

1 创建线程对象

2 线程进入可运行状态  可以运行,但是需要JVM来调度

3 执行run方法,进入到运行状态

4 在运行状态,对线程状态调度

5 5.线程死亡

调度:sleep() 睡眠    yeild() 让步     join() 合并      同步      通信 

sleep() 睡眠

Thread指的当前正在运行的线程,让当前正在运行的线程睡眠,实际是让当前正在运行线程睡眠(不继续执行),时间到后,线程进入到可运行状态,由JVM调度

 1 1 2 2 

Thread-0到了3秒  可运行状态 Thread-1到了3秒  可运行状态

一个线程sleep(),一定会让出执行权给另外一个线程

yeild() 让步:

1,   1,   2,  2

1,2,1,2

让当前运行的线程让步,让出执行权  

让出执行权理解:礼让 ,让的可能是:让给别人,让给自己

 join() 合并:

void是个严格定义的方法,里面不可以直接用return,所以下面在用个方法来取得值

计算1-100之和是个耗时操作,thread0执行1-100的和,主线程继续往下执行。因此值还没有计算出来。

所以要合并线程:

 相当于是把run方法拿到主线程这边来执行。

 分两个线程去分别计算奇数和 偶数和 

 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

2.17下   1.00


                                                                                     

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值