一、线程

1、多线程原理

  • 流程图

  • 内存图解说明

  • 创建线程的方式

    • 继承Thread类
    • 实现 Runnable接口

2、继承Thead类

3、实现Runnable接口

  • 实现接口,重写run方法

最终均需要通过Thread类实现多线程

3、Thread和Runnable的区别

  • 前者不是和资源共享,Runnable易于实现资源共享
  • 实现Runnable接口的优势
    • 适合多个线程共享统一资源
    • 避免单继承局限性
  • 每次运行启动两个线程:main和垃圾回收线程

4、匿名内部类方式创建

  • 匿名内部类实现 Runnable接口,并重写run方法

接口实现赋值给接口(匿名内部类)

二、线程安全

1、概念:

  • 每次运行结果相同

  • 多个线程同时执行写操作,就需要考虑线程同步,否则影响线程安全

2、线程同步

  • 解决多个线程访问同一资源的安全性问题,通过同步机制synchronized解决
  • 实现方式
    • 同步代码块:synchronized(lock)关键字
    • 同步方法:synchronized修饰的方法,被重写的run方法调用
    • Lock锁机制:更能体现面向对象
      • lock():同步加锁
      • unlock():释放同步锁

三、线程状态

1、概述

  • Thread.State的枚举中给出六种线程状态

最新文章

  1. 详解 iOS 上机题!附个人见解
  2. ORACLE 查看数据库中有哪些表
  3. secureCRT如何远程桥接CentOS.
  4. 【转】最实用的IT类网站及工具大集合
  5. java 如何连接MySql数据库
  6. JsRender系列demo(4)-if else
  7. HBase 的安装与配置
  8. photoswipe
  9. FreeImage裁剪示例
  10. CSS float 属性
  11. Google reCAPTCHA 人机身份验证
  12. 破解iframe微信推文(图片)防盗链
  13. PIL遇到问题解决
  14. 关于iframe的一些操作
  15. PAT 1124 Raffle for Weibo Followers
  16. ELMO模型(Deep contextualized word representation)
  17. AI-CBV写法
  18. quartz整合spring框架service层对象注入为null解决方案
  19. python---django中orm的使用(1)
  20. tsung执行时报Can't locate Template.pm的解决

热门文章

  1. 合理编写C++模块(.h、.cc)
  2. Solutions:Elastic SIEM - 适用于家庭和企业的安全防护 ( 二)
  3. Jenkins配置项目构建的钉钉通知
  4. My life of Honker Security Commando
  5. ABC260 作战总结
  6. 18.MongDB系列之批量更新写入Python版
  7. llinux下mysql建库、新建用户、用户授权、修改用户密码
  8. pycharm系列---基本配置
  9. 安卓APP和小程序渗透测试技巧总结
  10. 刚哥谈架构(八)- 为你的应用选择合适的API