Java多线程运行机制的基本原理
进程和线程的区别
进程
进程是一个程序执行的实例,比如说我们打开10个IE浏览器窗口,那么就有10个进程开启。一个进程可以同时被运行若干次,进程是CPU进行资源分配和调度的基本单位。
线程
线程是比进程更小的运行单位,一个进程只少有一个(主线程)或多个线程,每个线程在完成不同的任务,当线程内的多个线程在同时运行时,这种方式叫做并发。多个线程的使用大大提高了程序执行效率和处理能力。
进程与线程的区别
每个进程都需要操作系统为其分配独立的内存地址空间,而同一进程中的所有线程在同一内存地址空间,它们共享同一块内存空间中的资源。
创建线程有两张方式:
1、继承Thread类
2、实现Runnable接口,但是Runnable接口中没有start()方法,所以还需要new一个新的Thread线程来启动实现Runnable的子类。
线程同步
线程同步是为了解决多个线程对同一块数据资源进行读写操作而产生的错误。这就需要对数据的操作进行加锁,synchronized
实现线程同步有两种方式,一种是同步语句块,一种是同步方法。
线程的生命周期
线程有5种状态:新建、就绪、运行、阻塞、死亡。每种状态都是可以相互转换的。

最新文章

  1. 学jQuery Mobile后的感想
  2. HTML DOM
  3. asp.net mvc api auth
  4. jQuery MiniUI开发系列之:安装部署
  5. Linux 小工具学习之(1)——Wget十例[翻译]
  6. 移动App崩溃测试用例设计
  7. Linux常用指令---系统管理
  8. switch… case 语句的用法(一)
  9. 利用nginx做负载均衡
  10. 使用Navicat Premium 和PL\SQL Developer连接Oracl
  11. Homestead PHP7安装phpredis扩展
  12. hdu_1074_Doing Homework(状压DP)
  13. selenium webDriver给隐藏域赋值 input hidden set value
  14. day10 while else continue break
  15. ueditor编辑器显示style标签样式
  16. python 爬虫爬取内容时, \xa0 、 \u3000 的含义
  17. 2012年蓝桥杯省赛A组c++第3题(喝断片的海盗)
  18. 某些浏览器没有canvas.toBlob 方法的解决方案
  19. 第三十天- 进程 Process模块 空间隔离
  20. python第三十八课——面向对象(一)

热门文章

  1. Linux下比较常用的svn命令
  2. CPI和GDP有什么关系
  3. GS给客户单发包以及m_queGcWait(所有GC共享)
  4. 【BZOJ3671】[Noi2014]随机数生成器 暴力
  5. SQL Server里的 ISNULL 与 NULLIF(转)
  6. Hadoop实战-Flume之Source regex_extractor(十二)
  7. 【Xcode学C-4】进制知识、位运算符、变量存储细节以及指针的知识点介绍
  8. 序列化组件(get/put/delete接口设计),视图优化组件
  9. matplotlib和numpy 学习笔记
  10. Java多线程系列 基础篇09 Object.wait/notifyJVM源码实现