java语言 百分网手机站

Java线程同步的优先级介绍

时间:2020-12-07 13:33:06 java语言 我要投稿

Java线程同步的优先级介绍

  【提要】本篇《Java线程同步的优先级是什么》特别为需要编程学习的朋友收集整理的,仅供参考。内容如下:

  Java线程同步在不断的学习中已经形成了一种套路。下面是小编为大家搜索整理的Java线程同步的优先级是什么,希望大家能有所收获,更多精彩内容请及时关注我们考试网!

  Java线程同步在使用的时候需要我们主要很多的事情,下面我们就来看看如何才能更好的使用这个语法呢?首先我们来看看线程的四种状态,希望大家在这个之中最找到很多自己需要的。

  1、新状态:

  线程已被创建但尚未执行(start() 尚未被调用)。

  2、可执行状态:

  线程可以执行,虽然不一定正在执行。CPU 时间随时可能被分配给该线程,从而使得它执行。

  3、阻塞状态:

  线程不会被分配 CPU 时间,无法执行;可能阻塞于I/O,或者阻塞于同步锁。

  4、死亡状态:

  正常情况下run() 返回使得线程死亡。调用 stop()或 destroy() 亦有同样效果,但是不被推荐,前者会产生异常,后者是强制终止,不会释放锁。

  Java线程同步的优先级

  线程的优先级代表该线程的重要程度,当有多个线程同时处于可执行状态并等待获得 CPU 时间时,线程调度系统根据各个线程的优先级来决定给谁分配 CPU 时间,优先级高的'线程有更大的机会获得 CPU 时间,优先级低的线程也不是没有机会,只是机会要小一些罢了。

  你可以调用 Thread 类的方法 getPriority() 和 setPriority()来存取线程的优先级,线程的优先级界于1(MIN_PRIORITY)和10(MAX_PRIORITY)之间,缺省是5(NORM_PRIORITY)。

  Java线程同步

  由于同一进程的多个线程共享同一片存储空间,在带来方便的同时,也带来了访问冲突这个严重的问题。Java语言提供了专门机制以解决这种冲突,有效避免了同一个数据对象被多个线程同时访问。

  我们只需针对方法提出一套机制,这套机制就是 synchronized 关键字,它包括两种用法:synchronized 方法和 synchronized 块。

  synchronized 方法:通过在方法声明中加入synchronized关键字来声明 synchronized 方法。synchronized 方法控制对类成员变量的访问:每个类实例对应一把锁,每个 synchronized 方法都必须获得调用该方法的类实例的锁方能执行,否则所属线程阻塞,方法一旦执行,就独占该锁,直到从该方法返回时才将锁释放,此后被阻塞的线程方能获得该锁,重新进入可执行状态。

  这种机制确保了同一时刻对于每一个类实例,其所有声明为 synchronized 的成员函数中至多只有一个处于可执行状态(因为至多只有一个能够获得该类实例对应的锁),从而有效避免了类成员变量的访问冲突(只要所有可能访问类成员变量的方法均被声明为 synchronized)。

  在 Java线程同步中,不光是类实例,每一个类也对应一把锁,这样我们也可将类的静态成员函数声明为 synchronized,以控制其对类的静态成员变量的访问。

【Java线程同步的优先级介绍】相关文章:

1.Java优先级线程代码示例

2.java多线程介绍

3.Java线程编程中的主线程详细介绍

4.关于Java多线程介绍

5.java多线程同步块实例讲解素材

6.java多线程教程

7.JAVA多线程之线程间的通信方式解析

8.java单线程多线程的实现与方法