进程
计算机运行的单位,每一个程序就是一个进程
进程中存在线程
多个用户运行程序,线程 Thread
进程类中
start()进程开始
Run() run重写run, 在线程中处理的问题逻辑
对于文件,执行一边读,一边写,读和写是同时进行的。
线程:
继承于Thread,重写run方法,run()方法线程做的逻辑。
在主类中启动线程,由start()方法调用run()方法。
抢
如果抢票,程序开线程的,出现重票,线程启动时间不同,两个线程同时执行一个操作,同时进行tickets减1操作。
这种技术:线程不安全。 数据传输过程中,可以出现同时取一条数据。
加锁 synchronized,线程进入程序后,为程序加锁,其他线程进入不了这个程序,等待这个程序执行结束,才会继续执行, 锁就是Object对象锁,加入
Synchronized
String 定长
StringBuilder 变化,16个预留空间,方法与StringBuffer一样 ,处理不了并发
StringBuffer 线程安全,自动处理
并发
Synchronized加锁机制
继承Thread,当start开启一个线程,最好在线程上面加锁。
面向接口Runnable
实现线程两种方法:1、继承Thread 2、实现Runnable
Start 底层
Start线程使用stop停止
Interrupt中断当前的线程
destroy()销毁当前的线程
setName为线程设置名称
join暂停
sleep 休眠
Object
wait方法
notify()唤醒
如果某个程序线程安全,让方法加上synchronized,线程安全
多用户时一个应用。
典型的线程就是不安全,谁快谁就抢到票。
反射:
Java写好的程序,class文件,java提供反射技术,可以进入到class文件,取私有方法,私有属性,公有方法,公有属性。
如果框架中需求满足不了程序需要,需要反射到这个框架中,去修改功能。
Java SE
函数 循环 条件
面向对象----à面向接口---à工具类(String ArrayList)字符串,集合,文件操作(报告,项目文档) 多并发(synchronized),架构(反射)