Java中的Mutli线程

当我在 java中有一个synchronized方法,并且如果多个线程(比如10个线程)尝试访问此方法并假设某个线程可以访问此方法并完成方法的执行并释放锁定那么剩下的哪个9个线程可以访问此方法吗?是否有任何标准机制可以从池中选择下一个线程,或者它将按FIFO顺序选择还是随机选择线程?

解决方法

Java中的线程调度是特定于平台的.在同步方案中,无法保证线程执行的顺序.

话虽如此,程序大致如下:

>采用抢占式调度算法
>每个线程都由JVM获取优先级编号
>选择具有最高优先级的线程
>在具有相同优先级的线程之间遵循FIFO排序

JVM运行具有最高优先级的线程.也可以通过Thread类的setPriority()方法以编程方式设置优先级.

相关文章

HashMap是Java中最常用的集合类框架,也是Java语言中非常典型...
在EffectiveJava中的第 36条中建议 用 EnumSet 替代位字段,...
介绍 注解是JDK1.5版本开始引入的一个特性,用于对代码进行说...
介绍 LinkedList同时实现了List接口和Deque接口,也就是说它...
介绍 TreeSet和TreeMap在Java里有着相同的实现,前者仅仅是对...
HashMap为什么线程不安全 put的不安全 由于多线程对HashMap进...