A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zhousuo28 中级黑马   /  2015-5-27 16:31  /  148 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

进程
   一个应用程序,在运行的时候,所占有内存的空间区域,这个程序的进程

线程
   就是你的程序,对于CPU的一条执行的道路
   
线程依赖于进程,进程依赖于线程吗
   一个正在执行的程序,没有活动的线程,没有一个执行路径,这个进程自动结束

线程和进程都是由操作系统来创建,
我们实现多线程程序,依靠JVM帮你完成
线程也是一种对象,线程对象的描述类 java.lang.Thread
操作线程必须依赖Thread类

创建线程方式
第一种
  定义类,继承Thread类,定义类也就变成了线程类
  该类,重写Thread类run方法
创建子类对象
调用Thread类的方法 start() 开启线程

重写run方法
   线程是一条执行的路径,无论要运行什么代码,全部放run中
  
CPU对于线程调度问题
  CPU在某一时刻 一段时间之内,执行一条指令
      线程得到CPU的时间片,CPU将这个段时间交给一个线程执行
      
      
创建线程的第二种方式
  定义类,实现Runnable接口
重写接口中的抽象方法 run()
创建Thread类对象。Thread构造方法中,传递Runnable接口的实现类对象
调用Thread类start方法
   
   
线程中的同步原理
代码块
  synchronized(任意对象){
              线程操作的共享数据
  }

对象:对象监视器,对象锁, 锁
线程运行,前面是一个同步代码块的时候,
判断同步中的所有还有没有,如果有这个锁,就获取到这个锁 进入同步中的
如果后还有其他线程,也在同步代码块外面的时候,其他线程也会判断有没有这个锁,
锁已经被上一个线程拿走,没有锁的线程,等在同步外面。
等待在同步中线程,出去后,把锁归还同步代码块

多线程操作同一个数据的时候,出现安全隐患
单线程,没有安全隐患
   

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马