From f16d3aa3f86456ac43222c47db67070dc7bc9891 Mon Sep 17 00:00:00 2001 From: maliang Date: Thu, 16 Mar 2017 14:56:37 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=B3=A8=E9=87=8A=E4=BF=A1?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../center/manager/test/user/DeadLockTest.java | 43 ++++++++++++++++++++++ .../java/com/lyms/sycn/channel/ChannelData.java | 1 + .../hospital/service/sys/SyncDataBasicService.java | 1 + 3 files changed, 45 insertions(+) create mode 100644 center.manager/src/test/java/center/manager/test/user/DeadLockTest.java diff --git a/center.manager/src/test/java/center/manager/test/user/DeadLockTest.java b/center.manager/src/test/java/center/manager/test/user/DeadLockTest.java new file mode 100644 index 0000000..d402197 --- /dev/null +++ b/center.manager/src/test/java/center/manager/test/user/DeadLockTest.java @@ -0,0 +1,43 @@ +package center.manager.test.user; +public class DeadLockTest implements Runnable { + private int flag; + static Object o1 = new Object(), o2 = new Object(); // 静态的对象,被DeadLockTest的所有实例对象所公用 + + public void run() { + + System.out.println(flag); + if (flag == 0) { + synchronized (o1) { + try { + Thread.sleep(500); + } catch (Exception e) { + e.printStackTrace(); + } + synchronized (o2) { + } + } + } + if (flag == 1) { + synchronized (o2) { + try { + Thread.sleep(500); + } catch (Exception e) { + e.printStackTrace(); + } + synchronized (o1) { + } + } + } + } + + public static void main(String[] args) { + DeadLockTest test1 = new DeadLockTest(); + DeadLockTest test2 = new DeadLockTest(); + test1.flag = 1; + test2.flag = 0; + Thread thread1 = new Thread(test1); + Thread thread2 = new Thread(test2); + thread1.start(); + thread2.start(); + } +} \ No newline at end of file diff --git a/core.sdk/src/main/java/com/lyms/sycn/channel/ChannelData.java b/core.sdk/src/main/java/com/lyms/sycn/channel/ChannelData.java index 8ac9cf1..fa0d710 100644 --- a/core.sdk/src/main/java/com/lyms/sycn/channel/ChannelData.java +++ b/core.sdk/src/main/java/com/lyms/sycn/channel/ChannelData.java @@ -86,6 +86,7 @@ public class ChannelData implements Serializable { * @param remoteClazz * @param remoteMethod * @param data + * {@link ChannelData#toJsonString()} * @param loop */ public ChannelData(String id, String remote, String remoteClazz, String remoteMethod, String data, boolean loop) { diff --git a/hospital.web/src/main/java/com/lyms/hospital/service/sys/SyncDataBasicService.java b/hospital.web/src/main/java/com/lyms/hospital/service/sys/SyncDataBasicService.java index bd9a98a..67c20f9 100644 --- a/hospital.web/src/main/java/com/lyms/hospital/service/sys/SyncDataBasicService.java +++ b/hospital.web/src/main/java/com/lyms/hospital/service/sys/SyncDataBasicService.java @@ -47,4 +47,5 @@ public interface SyncDataBasicService extends BaseService { public ChannelData selectOne(); public Boolean updateBasic(Serializable id); + } -- 1.8.3.1