|
|
@@ -0,0 +1,159 @@
|
|
|
+package com.uas.platform.b2b.purc;
|
|
|
+
|
|
|
+import com.uas.platform.b2b.core.util.BoundedExecutor;
|
|
|
+import com.uas.platform.b2b.core.util.ThreadUtils;
|
|
|
+import com.uas.platform.b2b.erp.model.SaleOut;
|
|
|
+import org.junit.Test;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+
|
|
|
+import java.util.concurrent.ExecutorService;
|
|
|
+import java.util.concurrent.Executors;
|
|
|
+
|
|
|
+/**
|
|
|
+ * @author yuj
|
|
|
+ * @date 2018/12/17 16:17
|
|
|
+ */
|
|
|
+public class ThreadUtilsTest {
|
|
|
+
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testThreadUtil() throws InterruptedException {
|
|
|
+
|
|
|
+ ExecutorService executorService = Executors.newFixedThreadPool(1000);
|
|
|
+ BoundedExecutor executor = new BoundedExecutor(executorService, 1600);
|
|
|
+ for(int i = 0; i < 10000; i++) {
|
|
|
+ executor.submitTask(() -> {
|
|
|
+ int total = 0;
|
|
|
+ for (int j = 0; j < 100; j++) {
|
|
|
+ total += j;
|
|
|
+ }
|
|
|
+ System.out.println(Thread.currentThread().getName() + " - " + Thread.currentThread().getId() + "总计" + total);
|
|
|
+ });
|
|
|
+ executor.submitTask(() -> {
|
|
|
+ int total = 0;
|
|
|
+ for (int j = 0; j < 100; j++) {
|
|
|
+ total += j;
|
|
|
+ }
|
|
|
+ System.out.println(Thread.currentThread().getName() + " - " + Thread.currentThread().getId() + "总计" + total);
|
|
|
+ });
|
|
|
+ executor.submitTask(() -> {
|
|
|
+ int total = 0;
|
|
|
+ for (int j = 0; j < 100; j++) {
|
|
|
+ total += j;
|
|
|
+ }
|
|
|
+ System.out.println(Thread.currentThread().getName() + " - " + Thread.currentThread().getId() + "总计" + total);
|
|
|
+ });
|
|
|
+ executor.submitTask(() -> {
|
|
|
+ int total = 0;
|
|
|
+ for (int j = 0; j < 100; j++) {
|
|
|
+ total += j;
|
|
|
+ }
|
|
|
+ System.out.println(Thread.currentThread().getName() + " - " + Thread.currentThread().getId() + "总计" + total);
|
|
|
+ });
|
|
|
+ executor.submitTask(() -> {
|
|
|
+ int total = 0;
|
|
|
+ for (int j = 0; j < 100; j++) {
|
|
|
+ total += j;
|
|
|
+ }
|
|
|
+ System.out.println(Thread.currentThread().getName() + " - " + Thread.currentThread().getId() + "总计" + total);
|
|
|
+ });
|
|
|
+ executor.submitTask(() -> {
|
|
|
+ int total = 0;
|
|
|
+ for (int j = 0; j < 100; j++) {
|
|
|
+ total += j;
|
|
|
+ }
|
|
|
+ System.out.println(Thread.currentThread().getName() + " - " + Thread.currentThread().getId() + "总计" + total);
|
|
|
+ });
|
|
|
+ executor.submitTask(() -> {
|
|
|
+ int total = 0;
|
|
|
+ for (int j = 0; j < 100; j++) {
|
|
|
+ total += j;
|
|
|
+ }
|
|
|
+ System.out.println(Thread.currentThread().getName() + " - " + Thread.currentThread().getId() + "总计" + total);
|
|
|
+ });
|
|
|
+ executor.submitTask(() -> {
|
|
|
+ int total = 0;
|
|
|
+ for (int j = 0; j < 100; j++) {
|
|
|
+ total += j;
|
|
|
+ }
|
|
|
+ System.out.println(Thread.currentThread().getName() + " - " + Thread.currentThread().getId() + "总计" + total);
|
|
|
+ });
|
|
|
+ executor.submitTask(() -> {
|
|
|
+ int total = 0;
|
|
|
+ for (int j = 0; j < 100; j++) {
|
|
|
+ total += j;
|
|
|
+ }
|
|
|
+ System.out.println(Thread.currentThread().getName() + " - " + Thread.currentThread().getId() + "总计" + total);
|
|
|
+ });
|
|
|
+ executor.submitTask(() -> {
|
|
|
+ int total = 0;
|
|
|
+ for (int j = 0; j < 100; j++) {
|
|
|
+ total += j;
|
|
|
+ }
|
|
|
+ System.out.println(Thread.currentThread().getName() + " - " + Thread.currentThread().getId() + "总计" + total);
|
|
|
+ });
|
|
|
+ executor.submitTask(() -> {
|
|
|
+ int total = 0;
|
|
|
+ for (int j = 0; j < 100; j++) {
|
|
|
+ total += j;
|
|
|
+ }
|
|
|
+ System.out.println(Thread.currentThread().getName() + " - " + Thread.currentThread().getId() + "总计" + total);
|
|
|
+ });
|
|
|
+ executor.submitTask(() -> {
|
|
|
+ int total = 0;
|
|
|
+ for (int j = 0; j < 100; j++) {
|
|
|
+ total += j;
|
|
|
+ }
|
|
|
+ System.out.println(Thread.currentThread().getName() + " - " + Thread.currentThread().getId() + "总计" + total);
|
|
|
+ });
|
|
|
+ executor.submitTask(() -> {
|
|
|
+ int total = 0;
|
|
|
+ for (int j = 0; j < 100; j++) {
|
|
|
+ total += j;
|
|
|
+ }
|
|
|
+ System.out.println(Thread.currentThread().getName() + " - " + Thread.currentThread().getId() + "总计" + total);
|
|
|
+ });
|
|
|
+ executor.submitTask(() -> {
|
|
|
+ int total = 0;
|
|
|
+ for (int j = 0; j < 100; j++) {
|
|
|
+ total += j;
|
|
|
+ }
|
|
|
+ System.out.println(Thread.currentThread().getName() + " - " + Thread.currentThread().getId() + "总计" + total);
|
|
|
+ });
|
|
|
+ executor.submitTask(() -> {
|
|
|
+ int total = 0;
|
|
|
+ for (int j = 0; j < 100; j++) {
|
|
|
+ total += j;
|
|
|
+ }
|
|
|
+ System.out.println(Thread.currentThread().getName() + " - " + Thread.currentThread().getId() + "总计" + total);
|
|
|
+ });
|
|
|
+ executor.submitTask(() -> {
|
|
|
+ int total = 0;
|
|
|
+ for (int j = 0; j < 100; j++) {
|
|
|
+ total += j;
|
|
|
+ }
|
|
|
+ System.out.println(Thread.currentThread().getName() + " - " + Thread.currentThread().getId() + "总计" + total);
|
|
|
+ });
|
|
|
+ executor.submitTask(() -> {
|
|
|
+ int total = 0;
|
|
|
+ for (int j = 0; j < 100; j++) {
|
|
|
+ total += j;
|
|
|
+ }
|
|
|
+ System.out.println(Thread.currentThread().getName() + " - " + Thread.currentThread().getId() + "总计" + total);
|
|
|
+ });
|
|
|
+ executor.submitTask(() -> {
|
|
|
+ int total = 0;
|
|
|
+ for (int j = 0; j < 100; j++) {
|
|
|
+ total += j;
|
|
|
+ }
|
|
|
+ System.out.println(Thread.currentThread().getName() + " - " + Thread.currentThread().getId() + "总计" + total);
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ int i = Thread.activeCount();
|
|
|
+ while (i > 10) {
|
|
|
+ System.out.println("还有多少线程正在运行 = " + i);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+}
|