diff --git a/week_05/42/homework/Thread.xmind b/week_05/42/homework/Thread.xmind new file mode 100644 index 0000000000000000000000000000000000000000..2078211954a72321f727a93e8871ad4f20df884e Binary files /dev/null and b/week_05/42/homework/Thread.xmind differ diff --git a/week_05/42/homework/ThreadLocal.xmind b/week_05/42/homework/ThreadLocal.xmind new file mode 100644 index 0000000000000000000000000000000000000000..79dff97c76b1bf1ffc3f3ac78a917d995f9883d1 Binary files /dev/null and b/week_05/42/homework/ThreadLocal.xmind differ diff --git a/week_05/42/homework/ThreadLocalId.java b/week_05/42/homework/ThreadLocalId.java new file mode 100644 index 0000000000000000000000000000000000000000..daf4cf7a7ec267eac085cff660693f499dca0ef7 --- /dev/null +++ b/week_05/42/homework/ThreadLocalId.java @@ -0,0 +1,53 @@ +package com.jdk.week5.homework; + +import java.util.concurrent.atomic.AtomicInteger; + +/** + * Copyright + * + * @author conanju + * @since 2020/1/14 18:18 + */ +public class ThreadLocalId { + private static final AtomicInteger NEWXT_ID = new AtomicInteger(0); + private static final ThreadLocal threadId = new ThreadLocal() { + @Override + protected Integer initialValue() { + return NEWXT_ID.getAndIncrement(); + } + }; + + public static int get() { + return threadId.get(); + } + + public static void remove() { + threadId.remove(); + } + + private static void incrementSameThreadId() { + try { + for (int i = 0; i < 5; i++) { + System.out.println(Thread.currentThread() + "_" + i + " threadId :" + ThreadLocalId.get()); + } + } finally { + ThreadLocalId.remove(); + } + } + + public static void main(String[] args) { + incrementSameThreadId(); + new Thread(new Runnable() { + @Override + public void run() { + incrementSameThreadId(); + } + }).start(); + new Thread(new Runnable() { + @Override + public void run() { + incrementSameThreadId(); + } + }).start(); + } +} diff --git a/week_05/42/homework/ThreadPoolExecutor.xmind b/week_05/42/homework/ThreadPoolExecutor.xmind new file mode 100644 index 0000000000000000000000000000000000000000..71cf13e4480ca23109ee59db4f522f99a4b8e029 Binary files /dev/null and b/week_05/42/homework/ThreadPoolExecutor.xmind differ