JAVA多线程编程
线程与进程区别
进程指得是操作系统对于某一事件的程序实例,即一个程序就是一个进程
线程是微观的进程,进程有一个或者以上的线程组成
举例来讲,在微信运行时,当你与好友开视频聊天时,与其他好友发信息表情包,浏览朋友圈,关注公众号等这些不同的功能都可以同时运行,其中每一项任务都可以理解成“线程”在工作。
线程的生命周期(五个生命周期)
新建:当通过new操作符创建一个线程时,处于新建状态
就绪:使用start()方法之后处于就绪状态
运行:真正执行run()方法
阻塞:执行了sleep()、wait() 方法后
死亡:当线程执行完或者因为异常退出run()方法后
线程安全指的是多个线程访问同一个方法,对象或代码时不会产生不确定的结果,引起线程安全的原因:存在多线程共同操作的共享数据
在两个线程之间共享数据:
1.如果每个线程执行的代码相同,可以使用同一个Runnable对象,这个Runnable对象中有那个共享数据,例如,卖票系统就可以这么做。
2.如果每个线程执行的代码不同,这时候需要用不同的Runnable对象,
例如,设计4个线程。其中两个线程每次对j增加1,另外两个线程对j每次减1,银行存取款