多线程(day13)
来源:互联网 发布:js获取translatey的值 编辑:程序博客网 时间:2024/05/02 04:27
第十三天 多线程
360safe.exe 进程 Feiq.exe QQ.exe eclipse.exe
进程,就是应用程序在运行过程中占有的内存空间
360中的体检,木马,漏洞这些功能都在同时执行 由CPU来执行
定义::这些运行不同功能代码的执行路径,控制单元,就是线程
每一个应用程序,至少有一个活的线程,否则应用程序将推出
现在的java程序,单线程,main,一致执行到底
有没有main执行后,程序可以单独在开始另一个执行路径,和main脱离出来
1. java语言对多线程的支持
我们不能直接创建线程的,必须依靠JVM帮助我们完成创建线程的功能
JVM也不能创建线程,依靠window操作系统,来创建线程
为我们提供了描述多线程的对象 Thread java.lang
Java 虚拟机允许应用程序并发地运行多个执行线程。
2. 如何创建线程 第一种
声明一个类,继承Thread类,并覆盖run方法
建立子类的对象,相当于创建了一个线程
如何开启和运行线程,需要调用线程的start()方法
start()启动一个线程,JVM调用线程的run()方法
为什么继承Thread 覆盖run方法
继承Thread,子类变成了线程类
覆盖run方法,java工程师,后期不知道线程要运行的代码是什么
提供了一个方法,让你来覆盖run,覆盖后,JVM会自动的调用线程的run
3. JVM是单线程还是多线程---多线程的程序
一个线程执行我们写的代码
一个线程执行垃圾回收
一个线程使用window系统中的资源
线程的状态图
5. 卖票的实例***** 引出来第二种创建线程的方式,和线程操作共享数据的安全隐患
获取线程名字的方法 Thread类,getName()
设置线程的名称 Thread setName(String name)
获取线程名字的方法 利用Thread类中的一个静态方法 currentThread()
currentThread() 运算的结果是,当前正在运行的线程对象
static Thread currentThread(){}
6. 第二个创建线程的方式 实现Runnable接口
定义类,实现Runnable接口
覆盖接口的抽象方法 run
建立Thread对象,在Thread构造方法中,传递Runnable接口的实现类对象
调用Thread对象start()方法
7. 继承Thread和实现Runnable接口的区别
继承,单继承的局限性
实现接口,多实现
继承的方式,资源线程独享
实现Runnable接口,资源线程共享,(票对象,只有一个)
8. 多线程操作共享数据的安全隐患
当多个线程,操作同一共享数据的是,存在安全隐患
也是开发多线程程序中,最头疼的问题
程序人员,必须保证数据的准确性
解决多线程操作共享数据的安全问题,使用同步技术来解决问题
同步技术,当线程去操作数据的时候,一个线程不操作完毕,其余的线程无法进行操作
同步代码块:格式
synchronized(对象){
//线程操作的共享数据
}
保证多线程运行,持有锁的线程才能运行,没有锁的线程,只能等待,临时阻塞
利用同步解决了卖票过程中的数据安全问题
9. 银行的存钱案例 *****
每个窗口存3次,2个窗口
每次存款 100元 一共600
当线程操作的数据,在方法内,全部都是操作的共享数据,同步方法可以了
不在需要些单独的同步代码块了
非静态同步方法的锁,也是对象,是本对象的引用 this
静态方法的锁,是类名.class 返回的字节码文件对象
10. 单例设计模式中,懒汉中的安全隐患,解决办法
保证对象的唯一性 懒汉中,由于延迟加载对象,造成数据安全问题
多线程,操作同一个单例设计类的时候
解决办法:安全的高效的懒汉
11. 死锁***** 面试
是多线程的一个特性,实际项目中,不可能出现
多个线程抢一把锁,造成程序终止运行,停止了,但是程序并没有结束
给我筷子,给我叉子
出现的原因,同步中,还有同步 嵌套同步 (嵌套for循环)
- 多线程(day13)
- MyArrayList(Day13)
- Python-day12(day13)
- day13
- DAY13
- day13
- day13
- day13
- day13
- day13
- day13
- day13
- Day13
- Day13
- day13
- day13
- DAY13
- Day13
- iOS CFBundleDisplayName="XXXX";
- java反射详解
- 什么是wcf?wcf和webservice的区别
- 利用JNI技术在Android中调用C++形式的OpenGL ES 2.0函数
- One Billion Customers
- 多线程(day13)
- poj 3628 01 背包
- 白求恩在中国是怎样解决性问题的
- Win7安装Ubuntu-Ubuntu下安装eclipse总结
- HDU 4726 Kia's Calculation
- 微信取消推送将葬送公众账号前途
- 斯大林逝世后的权利更迭
- [设计模式笔记]一. 创建型模式--5.Prototype模式(原型)(二)
- ya178手机平台正式开放