Java多线程问题:同步与互斥实例

原创 超、凢脫俗 2024-10-25 16:18 195阅读 0赞

在Java中,多线程可能会遇到同步和互斥的问题。以下是一些实例:

  1. 同步锁(Synchronized)
    当一个方法需要保护其内部状态时,可以使用synchronized关键字。例如:
  1. public class Counter {
  2. private int count;
  3. public synchronized void increment() {
  4. count++;
  5. }
  6. public synchronized int getCount() {
  7. return count;
  8. }
  9. }
  1. 互斥锁(Lock)
    Java 11及更高版本引入了java.util.concurrent.locks.Lock接口,提供了更细粒度的锁管理。例如:
  1. import java.util.concurrent.locks.Lock;
  2. import java.util.concurrent.locks.ReentrantLock;
  3. public class ExclusiveTask {
  4. private Lock lock = new ReentrantLock();
  5. public void doExclusiveTask() {
  6. lock.lock(); // 互斥锁定
  7. try {
  8. // 进行任务操作,这里只作为示例
  9. System.out.println(" Exclusive task is running ...");
  10. } catch (Exception e) {
  11. e.printStackTrace();
  12. } finally {
  13. lock.unlock(); // 解锁
  14. System.out.println(" Exclusive task completed ...");
  15. }
  16. }
  17. }

通过上述实例,你可以理解Java多线程中的同步与互斥问题。

文章版权声明:注明蒲公英云原创文章,转载或复制请以超链接形式并注明出处。

发表评论

表情:
评论列表 (有 0 条评论,195人围观)

还没有评论,来说两句吧...

相关阅读