摘要: 1、多个线程各自占用一些共享资源,并且互相等待其他线程占有的资源才能运行,而导致两个或多个线程都在等待对方资源释放,都停止的情形。某一个同步块同时拥有两个以上对象的锁时,就可能会死锁。 2、死锁产生的4个必要条件(只要想办法破其中任意一个或多个条件就可以避免死锁。) 互斥条件:一个资源每次只能被一个 阅读全文
posted @ 2021-09-25 19:32 Eleanor123 阅读(46) 评论(0) 推荐(1) 编辑
摘要: 1、线程同步是一个等待机制,多个需要同时访问次对象的线程进入这个对象的等待池形成队列,等待前一个线程使用完毕,下一个线程才能使用。形成条件:队列+锁 2、由于同一个进程的多个线程共享同一块存储空间,在带来方便的同时,也带来了访问冲突,为了保证数据在方法中被访问的正确性,在访问时加入锁机制synchr 阅读全文
posted @ 2021-09-25 19:20 Eleanor123 阅读(43) 评论(0) 推荐(1) 编辑
摘要: Java提供一个线程调度器来监控程序中启动后进入就绪状态的所有线程,线程调度器按照优先级决定应该调度哪个线程来执行,建议在start()调度之前设置优先级。 优先级的低只是意味着获得调度的概率低,并不意味优先级低就不会被调用了,这个需要看CPU的调度。 线程的优先级用数字表示,范围从1-10。 Th 阅读全文
posted @ 2021-09-25 19:04 Eleanor123 阅读(53) 评论(0) 推荐(1) 编辑
摘要: 1、start()方法 start()方法用来启动一个线程,当调用start方法后,系统才会开启一个新的线程来执行用户定义的子任务,在这个过程中,会为相应的线程分配需要的资源。 2、run()方法 run()方法不是需要用户来调用的,当通过start方法启动一个线程之后,线程获得了CPU执行时间,便 阅读全文
posted @ 2021-09-25 18:35 Eleanor123 阅读(84) 评论(0) 推荐(1) 编辑