zoukankan      html  css  js  c++  java
  • JDK并发包

    JDK提供了大量实用的API和框架,来支持JDK内部功能:

    • 介绍更多多线程控制方法,比如之前的synchronized;
    • 介绍JDK中对线程池的支持,提高线程调度性能;
    • 向大家介绍JDK的一些并发容器。

    1 多线程的团队协作:同步控制


    • synchronized 的功能扩展:重入锁
      • 使用java.util.concurrent.locks.ReentrantLock 类来实现
      • 需手动指定何时加锁,何时释放锁
      • 注意:必须记得释放锁,否则其他线程就没有机会访问临界区了;
      • 为什么叫重入锁:一个线程可以连续两次获得同意不锁,当然,释放时也需要释放两次;
    public class ReentLock implements Runnable{
    	public static ReentrantLock lock = new ReentrantLock();
    	public static int i = 0;
    	public static void main(String[] args) throws InterruptedException {
    		ReentLock r= new ReentLock();
    		Thread t1 = new Thread(r);
    		Thread t2 = new Thread(r);
    		t1.start();
    		t2.start();
    		t1.join();		//主线程愿意等到该线程执行完再执行
    		t2.join();
    		System.out.println(i);
    	}
    	@Override
    	public void run() {
    		for (int k = 0; k < 1000000; k++) {
    			lock.lock();	//加锁
    			lock.lock();	//第二次加锁
    			i++;
    			lock.unlock();	//解锁
    			lock.unlock();	//第二次解锁
    		}
    	}
    }
    
  • 相关阅读:
    从程序员到技术总监,分享10年开发经验
    CF739E Gosha is hunting
    hdu 4891 模拟
    hdu4888 最大流(构造矩阵)
    hdu4888 最大流(构造矩阵)
    hdu4885 有 限制的最短路
    hdu4885 有 限制的最短路
    hdu4884 模拟
    hdu4884 模拟
    POJ1789简单小生成树
  • 原文地址:https://www.cnblogs.com/sean-zeng/p/11024770.html
Copyright © 2011-2022 走看看