什么是进程? 一个进程对应一个功能模块,比如QQ能听音乐能聊天,听音乐是一个进程,聊天是一个进程。一个进程包含一个或者多个线程,但是至少得有一个线程。
什么是线程? 程序的最小单位,能独立执行一个完整的业务流程。
主线程和子线程? 执行main方法下的代码块是主线程,创建实例再调用方法的是子线程。
start()和run()执行顺序的区别? 两个start()是多线程,交替执行;两个run()是调用方法,是单线程,执行完一个再到另一个。
为什么线程不安全? 多并发环境下执行同一代码块,共享同一内存空间。前一线程还没执行完全,实现数据更新呢。后一线程就跑过了捣乱,来用同样的数据了。这数据不是乱套了吗。
线程问题如何解决? 给方法或者代码块加锁(synchronized)
那些是安全的?那些不安全? table和buffer是安全的map和builder是不安全的。