ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

2022-08-02 田龙跃 学习笔记

2022-08-02 17:04:47  阅读:141  来源: 互联网

标签:02 run thread 08 start 线程 内存 2022 方法


并发:在一”段“时间内,很多事情同时发生(程序开发角度:程序运行期间,多个线程同时操作相同资源)

线程:内存分给进程一部分计算资源,“进程的每个线程在线程被分配的内存中在争夺计算资源”(线程优先级是概率问题)

  • 创建线程的几种方式:
    1.继承thread类,重写run方法(这个类和方法都不是抽象的)继承后子类成为了一个独立的线程
    线程需要被启动(.start-是本地方法,启动"一个"线程(只有C语言可以操作CPU))调用run方法(直接调用run是普通的对象调方法)
    2.实现Runnable接口(函数式接口)重写run方法,但是要使用Thread构造一个线程才能使用.start
    3.(JDK1.5)实现callable接口<泛型接口> 重写 call() throws Exception 可以抛异常,有返回值,还要转成thread方法才能
    start(1.先转成runnable-使用futureTask构造成runnable2.转成thread类,使用thread构造)
    4.
  • 线程的生命周期:
    NEW 未被start调用执行(未加载)
    Runnable 线程正在JVM被执行,等待操作系统调度(加载后待运行)
    Blocked 阻塞,因为某些原因不能立即执行(外部原因导致)
    Waiting 无限期等待(如果没被唤醒则一直等待)(等待一般是主动调用方法等待)
    TimedWaiting 有限期等待(等一段时间后自己进入)
    Terminated 终止线程的状态
  • 守护线程(守护用户线程的线程)(程序的小模块):为用户线程提供服务,用户需要时就出现,不需要就不用出现——经常用于支持后台任务(大多数JVM线程都是守护线程) 线程.setDaemon(true)设置守护线程
    *java内存模型:CPU-CPU寄存器-一级缓存-二级缓存-主内存 (线程和线程之间,共享数据的通信JAVA中都是必须要从主内存走一遍)
    (安全问题-读数据时和向主内存中写数据产生的问题)-程序就是数据的读写操作;
    1.(顺序性)指令重排(最大化的利用内存资源产生的结果):互相无关的指令之间计算机Cpu可以随机选择命令的执行顺序(volatile-内存屏障禁止重排序关键字可以解决)
    2.(可见性)不可见性:是指线程之间的可见性,一个线程修改的数据(没写到主内存之前)对另一个线程是不可见的(volatile关键字可以解决)volatile关键字可以保证直接从主存中读取一个变量,如果这个变量被修改后,总是会被写回到主存中去;
    3.(原子性)线程争抢:争抢计算资源,但都拿到了相同的资源进行操作(本来要操作两次,结果都对相同资源操作导致进行了同样的操作,相当于只操作了一次)加(synchronized同步)锁
  • 线程安全的实现方法:
    1.数据不可变:一切不可变的对象都是线程安全的 final;字符串
    2.互斥同步:加锁(悲观锁)
    3.非阻塞同步:{无锁变成}自旋
    4.无同步方案:限制共享数据的可见范围,就是共享(数据)所有的操作一个
    博文:https://zhuanlan.zhihu.com/p/29881777(谢谢作者大大)多看!!!!!!!

标签:02,run,thread,08,start,线程,内存,2022,方法
来源: https://www.cnblogs.com/404tly/p/16543300.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有