摘要:
死锁:是指两个或两个以上的进程(或线程)在执行过程中,因争夺资源而造成的一种相互等待的现象,若无外力作用,他们将无法推进下去; 活锁:是指两个线程优先级相同,都礼让不走,就这样一直僵持下去; 饿死:在单线程情况下,A、B两个线程,A先执行;A在执行过程中,C线程来了,B让C先执行;C在执行过程中,D 阅读全文
摘要:
答:能,只不过只是一个指向数组的引用,而不是整个数组,如果改变了引用指向的数组,将会受到volatile的保护,但是如果多个线程同时改变数组的元素,volatile关键字就不能起到保护的作用。 阅读全文
摘要:
sleep方法: 属于Thread类中的方法;会导致程序暂停执行指定的时间,让出cpu该其他线程,但是他的监控状态依然保持着,当指定时间到了之后,又会自动恢复运行状态;在调用sleep方法的过程中,线程不会释放对象锁。(只会让出CPU,不会导致锁行为的改变) wait方法: 属于Object类中的方 阅读全文
摘要:
run()方法: 是在主线程中执行方法,和调用普通方法一样;(按顺序执行,同步执行) start()方法: 是创建了新的线程,在新的线程中执行;(异步执行) 阅读全文
摘要:
面试官:线程池有哪些?分别的作用是什么? 常用的线程池有: 1、newSingleThreadExecutor: 单个线程的线程池,即线程池中每次只有一个线程工作,单线程串行执行任务; 2、newFixedThreadExecutor: 固定数量的线程池,每提交一个任务就是一个线程,直到线程达到线程 阅读全文