java 다중 루틴 신호량

2016 단어 다중 스레드
4
  • 신호량은 한 번에 한 라인만 자원에 접근할 수 있도록 잠그는 문제를 해결했다. 신호량은 여러 라인을 지정하고 한 라인을 동시에 접근할 수 있다.acquire () 방법은 허가를 얻으려고 시도하지만, 얻지 못하면 허가를 받을 때까지 계속 기다립니다.방문이 끝난 후 자원을 방출합니다
  • 
    public class SemapDemo implements Runnable {
        final Semaphore semp=new Semaphore(5);
    
        @Override
        public void run() {
            // TODO Auto-generated method stub
            try {
                semp.acquire();
                Thread.sleep(2000);
                System.out.println(Thread.currentThread().getName()+"done"+System.currentTimeMillis()/1000);
                semp.release();
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    
        public static void main(String[] args) {
            ExecutorService exec=Executors.newFixedThreadPool(15);
            final SemapDemo semapDemo=new SemapDemo();
            for(int i=0;i<15;i++)
            {
                exec.submit(semapDemo);
            }
        }
    
    }
    

    좋은 웹페이지 즐겨찾기