java 死锁bdm

接口

    int thread1();
    int thread2();

  dao实现

    <update id="thread1">
        BEGIN
        update t_base_employee t set t.modify_time=sysdate where t.employee_code='108251';
update t_base_employee t set t.modify_time=sysdate where t.employee_code='M53291';
        end;
    </update>
    <update id="thread2">
        BEGIN
        update t_base_employee t set t.modify_time=sysdate where t.employee_code='M53291';
update t_base_employee t set t.modify_time=sysdate where t.employee_code='108251';
        end;
    </update>

  测试

@Test
    public void threadTest() throws InterruptedException {

        int threadNumber=3;
        final CountDownLatch countDownLatch = new CountDownLatch(threadNumber);
        for (int i = 0; i < threadNumber; i++) {
            final int ii=i;
            if (i % 2 == 0) {
                new Thread(new Runnable() {
                    @Override
                    public void run() {
                        baseSysLoggerService.thread1();
                        System.out.println("第"+(ii+1)+"个线程执行完成");
                        countDownLatch.countDown();
                    }
                }).start();
            } else {
                new Thread(new Runnable() {
                    @Override
                    public void run() {
                        System.out.println("第"+(ii+1)+"个线程执行完成");
                        baseSysLoggerService.thread2();
                        countDownLatch.countDown();
                    }
                }).start();
            }
        }
        countDownLatch.await();
        System.out.println("主线程执行完成");

    }

  




posted @ 2017-10-25 21:14  zfzf1  阅读(148)  评论(0编辑  收藏  举报