From 71ffb918f615f691d9905778e52876af7a24eaf8 Mon Sep 17 00:00:00 2001 From: Bunny <1319900154@qq.com> Date: Thu, 26 Dec 2024 22:59:41 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=95=B0=E6=8D=AE=E5=85=B1=E4=BA=AB?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/thead/feture/FutureTask.java | 4 ++ src/main/java/thead/thread_3/Application.java | 27 +++++++++++++ src/main/java/thead/thread_3/MyThread.java | 23 +++++++++++ src/main/java/thead/thread_4/Application.java | 13 ++++++ .../java/thead/thread_4/Application2.java | 19 +++++++++ src/main/java/thead/thread_4/MyThread.java | 40 +++++++++++++++++++ 6 files changed, 126 insertions(+) create mode 100644 src/main/java/thead/feture/FutureTask.java create mode 100644 src/main/java/thead/thread_3/Application.java create mode 100644 src/main/java/thead/thread_3/MyThread.java create mode 100644 src/main/java/thead/thread_4/Application.java create mode 100644 src/main/java/thead/thread_4/Application2.java create mode 100644 src/main/java/thead/thread_4/MyThread.java diff --git a/src/main/java/thead/feture/FutureTask.java b/src/main/java/thead/feture/FutureTask.java new file mode 100644 index 0000000..6290189 --- /dev/null +++ b/src/main/java/thead/feture/FutureTask.java @@ -0,0 +1,4 @@ +package thead.feture; + +public class FutureTask { +} diff --git a/src/main/java/thead/thread_3/Application.java b/src/main/java/thead/thread_3/Application.java new file mode 100644 index 0000000..d94806c --- /dev/null +++ b/src/main/java/thead/thread_3/Application.java @@ -0,0 +1,27 @@ +package thead.thread_3; + +public class Application { + public static void main(String[] args) { + MyThread myThread1 = new MyThread(1); + MyThread myThread2 = new MyThread(2); + MyThread myThread3 = new MyThread(3); + MyThread myThread4 = new MyThread(4); + MyThread myThread5 = new MyThread(5); + MyThread myThread6 = new MyThread(6); + MyThread myThread7 = new MyThread(7); + MyThread myThread8 = new MyThread(8); + MyThread myThread9 = new MyThread(9); + MyThread myThread10 = new MyThread(10); + + myThread1.start(); + myThread2.start(); + myThread3.start(); + myThread4.start(); + myThread5.start(); + myThread6.start(); + myThread7.start(); + myThread8.start(); + myThread9.start(); + myThread10.start(); + } +} diff --git a/src/main/java/thead/thread_3/MyThread.java b/src/main/java/thead/thread_3/MyThread.java new file mode 100644 index 0000000..2e78957 --- /dev/null +++ b/src/main/java/thead/thread_3/MyThread.java @@ -0,0 +1,23 @@ +package thead.thread_3; + +public class MyThread extends Thread { + + private final Integer integer; + + /** + * Allocates a new {@code Thread} object. This constructor has the same + * effect as {@linkplain #Thread(ThreadGroup, Runnable, String) Thread} + * {@code (null, null, gname)}, where {@code gname} is a newly generated + * name. Automatically generated names are of the form + * {@code "Thread-"+}n, where n is an integer. + */ + public MyThread(Integer integer) { + this.integer = integer; + } + + @Override + public void run() { + super.run(); + System.out.println(integer); + } +} diff --git a/src/main/java/thead/thread_4/Application.java b/src/main/java/thead/thread_4/Application.java new file mode 100644 index 0000000..de63810 --- /dev/null +++ b/src/main/java/thead/thread_4/Application.java @@ -0,0 +1,13 @@ +package thead.thread_4; + +public class Application { + // 有线程安全的操作 + public static void main(String[] args) { + MyThread t1 = new MyThread("t1"); + MyThread t2 = new MyThread("t2"); + MyThread t3 = new MyThread("t3"); + t1.start(); + t2.start(); + t3.start(); + } +} diff --git a/src/main/java/thead/thread_4/Application2.java b/src/main/java/thead/thread_4/Application2.java new file mode 100644 index 0000000..0074dc9 --- /dev/null +++ b/src/main/java/thead/thread_4/Application2.java @@ -0,0 +1,19 @@ +package thead.thread_4; + +public class Application2 { + public static void main(String[] args) { + MyThread myThread = new MyThread("t0"); + + Thread t1 = new Thread(myThread, "t1"); + Thread t2 = new Thread(myThread, "t2"); + Thread t3 = new Thread(myThread, "t3"); + Thread t4 = new Thread(myThread, "t4"); + Thread t5 = new Thread(myThread, "t5"); + + t1.start(); + t2.start(); + t3.start(); + t4.start(); + t5.start(); + } +} diff --git a/src/main/java/thead/thread_4/MyThread.java b/src/main/java/thead/thread_4/MyThread.java new file mode 100644 index 0000000..b27cecf --- /dev/null +++ b/src/main/java/thead/thread_4/MyThread.java @@ -0,0 +1,40 @@ +package thead.thread_4; + +public class MyThread extends Thread { + + private Integer count = 10; + + /** + * Allocates a new {@code Thread} object. This constructor has the same + * effect as {@linkplain #Thread(ThreadGroup, Runnable, String) Thread} + * {@code (null, null, gname)}, where {@code gname} is a newly generated + * name. Automatically generated names are of the form + * {@code "Thread-"+}n, where n is an integer. + */ + public MyThread(String name) { + super(); + setName(name); + } + + /** + * If this thread was constructed using a separate + * {@code Runnable} run object, then that + * {@code Runnable} object's {@code run} method is called; + * otherwise, this method does nothing and returns. + *

+ * Subclasses of {@code Thread} should override this method. + * + * @see #start() + * @see #stop() + * @see #Thread(ThreadGroup, Runnable, String) + */ + @Override + public synchronized void run() { + super.run(); + + // while (count > 0) { + count--; + System.out.println("由" + currentThread().getName() + "计算,count=" + count); + // } + } +}