diff --git a/pom.xml b/pom.xml index ce20fea..bd6d03c 100644 --- a/pom.xml +++ b/pom.xml @@ -26,32 +26,25 @@ UTF-8 - - - - org.apache.maven.plugins - maven-compiler-plugin - - - - org.projectlombok - lombok - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - org.projectlombok - lombok - - - - - - + + + org.projectlombok + lombok + 1.18.36 + + + + org.slf4j + slf4j-api + 2.0.16 + + + + org.slf4j + slf4j-simple + 2.0.16 + + + + \ No newline at end of file diff --git a/src/main/java/feture/feture/MyFutureTask.java b/src/main/java/feture/feture/MyFutureTask.java new file mode 100644 index 0000000..b056f9a --- /dev/null +++ b/src/main/java/feture/feture/MyFutureTask.java @@ -0,0 +1,22 @@ +package feture.feture; + +import java.util.concurrent.Callable; +import java.util.concurrent.FutureTask; + +public class MyFutureTask { + public static void main(String[] args) { + FutureTask futureTask = new FutureTask<>(new Callable<>() { + + /** + * Computes a result, or throws an exception if unable to do so. + * + * @return computed result + * @throws Exception if unable to compute a result + */ + @Override + public Integer call() throws Exception { + return 0; + } + }); + } +} diff --git a/src/main/java/feture/feture_2/MyFutureTask.java b/src/main/java/feture/feture_2/MyFutureTask.java new file mode 100644 index 0000000..1d0dcb8 --- /dev/null +++ b/src/main/java/feture/feture_2/MyFutureTask.java @@ -0,0 +1,22 @@ +package feture.feture_2; + +import java.util.concurrent.Callable; +import java.util.concurrent.FutureTask; + +public class MyFutureTask { + public static void main(String[] args) { + FutureTask futureTask = new FutureTask<>(new Callable<>() { + + /** + * Computes a result, or throws an exception if unable to do so. + * + * @return computed result + * @throws Exception if unable to compute a result + */ + @Override + public Integer call() throws Exception { + return 0; + } + }); + } +} diff --git a/src/main/java/thead/feture/FutureTask.java b/src/main/java/thead/feture/FutureTask.java deleted file mode 100644 index 6290189..0000000 --- a/src/main/java/thead/feture/FutureTask.java +++ /dev/null @@ -1,4 +0,0 @@ -package thead.feture; - -public class FutureTask { -} diff --git a/src/main/java/thead/thread_4/Application.java b/src/main/java/thead/thread_4/Application.java index de63810..ad69e16 100644 --- a/src/main/java/thead/thread_4/Application.java +++ b/src/main/java/thead/thread_4/Application.java @@ -2,12 +2,20 @@ package thead.thread_4; public class Application { // 有线程安全的操作 - public static void main(String[] args) { + public static void main(String[] args) throws InterruptedException { MyThread t1 = new MyThread("t1"); MyThread t2 = new MyThread("t2"); MyThread t3 = new MyThread("t3"); + System.out.println("是否中断:" + t1.isInterrupted()); + t1.start(); t2.start(); t3.start(); + + Thread.sleep(100); + System.out.println("是否中断:" + t1.isInterrupted()); + + t1.interrupt(); + System.out.println("是否中断:" + t1.isInterrupted()); } } diff --git a/src/main/java/thead/thread_5/Application3.java b/src/main/java/thead/thread_5/Application3.java new file mode 100644 index 0000000..bf55585 --- /dev/null +++ b/src/main/java/thead/thread_5/Application3.java @@ -0,0 +1,12 @@ +package thead.thread_5; + +public class Application3 { + public static void main(String[] args) throws InterruptedException { + MyThread thread = new MyThread(); + thread.start(); + Thread.sleep(100); + thread.interrupt(); + System.out.println("是否中断1:" + thread.isInterrupted()); + System.out.println("是否中断2:" + thread.isInterrupted()); + } +} diff --git a/src/main/java/thead/thread_5/MyThread.java b/src/main/java/thead/thread_5/MyThread.java new file mode 100644 index 0000000..d32bf84 --- /dev/null +++ b/src/main/java/thead/thread_5/MyThread.java @@ -0,0 +1,11 @@ +package thead.thread_5; + +public class MyThread extends Thread { + @Override + public void run() { + super.run(); + for (int i = 0; i < 500000; i++) { + System.out.println("i=" + (i + 1)); + } + } +} diff --git a/src/main/java/thead/thread_5/MyThreadTest1.java b/src/main/java/thead/thread_5/MyThreadTest1.java new file mode 100644 index 0000000..942c36d --- /dev/null +++ b/src/main/java/thead/thread_5/MyThreadTest1.java @@ -0,0 +1,28 @@ +package thead.thread_5; + +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; + +@Slf4j +public class MyThreadTest1 { + public static void main(String[] args) throws InterruptedException { + + Thread thread = new Thread("t1") { + @SneakyThrows + @Override + public void run() { + super.run(); + Thread.sleep(2000); + } + }; + + thread.start(); + log.info("t1:{}", thread.getState()); + + Thread.sleep(500); + log.info("t1-2:{}", thread.getState()); + + thread.setDaemon(true); + } +} +