当前位置: 首页 > news >正文

多线程笔记——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

转载于:https://www.cnblogs.com/wanglingdeboke/p/9694881.html

相关文章:

  • 八大排序算法
  • Andorid自定义attr的各种坑
  • 发送邮件代码--ASP.NET中常用代码之一
  • css在线sprite
  • C#中的类型转换
  • 20180925 SQL Server游标使用
  • 青蛙
  • jQuery介绍
  • SmartPersistenceLayer 3.1 事务处理
  • idea项目结构旁边出现0%classes,0%lines covered
  • 陌生女孩
  • 更简单高效的HTML数据提取-Xpath
  • 唐伯虎之作收录
  • java数据结构---------插入排序的实现
  • Enterprise Library2.0(2):Logging Application Block学习
  • 【mysql】环境安装、服务启动、密码设置
  • 【从零开始安装kubernetes-1.7.3】2.flannel、docker以及Harbor的配置以及作用
  • 2019年如何成为全栈工程师?
  • ES6核心特性
  • ES6系列(二)变量的解构赋值
  • iOS | NSProxy
  • java8-模拟hadoop
  • java概述
  • JS变量作用域
  • MySQL QA
  • MySQL-事务管理(基础)
  • Octave 入门
  • quasar-framework cnodejs社区
  • Shell编程
  • Theano - 导数
  • 编写符合Python风格的对象
  • 聚簇索引和非聚簇索引
  • 前嗅ForeSpider教程:创建模板
  • 手写一个CommonJS打包工具(一)
  • 自定义函数
  • ​七周四次课(5月9日)iptables filter表案例、iptables nat表应用
  • #define MODIFY_REG(REG, CLEARMASK, SETMASK)
  • #设计模式#4.6 Flyweight(享元) 对象结构型模式
  • (¥1011)-(一千零一拾一元整)输出
  • (173)FPGA约束:单周期时序分析或默认时序分析
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • (delphi11最新学习资料) Object Pascal 学习笔记---第7章第3节(封装和窗体)
  • (poj1.3.2)1791(构造法模拟)
  • (附源码)springboot电竞专题网站 毕业设计 641314
  • (教学思路 C#之类三)方法参数类型(ref、out、parmas)
  • (免费领源码)Java#ssm#MySQL 创意商城03663-计算机毕业设计项目选题推荐
  • (七)Java对象在Hibernate持久化层的状态
  • (十六)Flask之蓝图
  • (四)TensorRT | 基于 GPU 端的 Python 推理
  • (一)WLAN定义和基本架构转
  • (原)记一次CentOS7 磁盘空间大小异常的解决过程
  • (原創) 物件導向與老子思想 (OO)
  • ***利用Ms05002溢出找“肉鸡
  • ./indexer: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object fil
  • .net 打包工具_pyinstaller打包的exe太大?你需要站在巨人的肩膀上-VC++才是王道