Skip to content

Commit

Permalink
[性能优化](github-master): 调整线程池
Browse files Browse the repository at this point in the history
  • Loading branch information
eurigo committed Jul 27, 2021
1 parent db1afc6 commit cb69489
Showing 1 changed file with 9 additions and 22 deletions.
31 changes: 9 additions & 22 deletions udplibrary/src/main/java/com/eurigo/udplibrary/UdpUtils.java
Original file line number Diff line number Diff line change
@@ -1,13 +1,8 @@
package com.eurigo.udplibrary;

import android.annotation.SuppressLint;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.DhcpInfo;
import android.net.LinkProperties;
import android.net.NetworkInfo;
import android.net.wifi.WifiManager;
import android.os.Build;
import android.text.TextUtils;
import android.util.Log;

Expand All @@ -16,29 +11,22 @@
import com.google.gson.JsonObject;

import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.Inet6Address;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.net.UnknownHostException;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.Enumeration;
import java.util.Map;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.SynchronousQueue;
import java.util.concurrent.ThreadFactory;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicLong;
import java.util.regex.Pattern;

import static android.os.Build.VERSION_CODES.M;

/**
* @author Eurigo
* Created on 2021/7/1 14:43
Expand Down Expand Up @@ -156,12 +144,12 @@ private void receiveMessage() {
* 开启接收数据的线程
**/
private void startSocketThread() {
executorService = new ThreadPoolExecutor(2 * CPU_COUNT + 1
executorService = new ThreadPoolExecutor(CPU_COUNT
, 2 * CPU_COUNT + 1
, 30
, TimeUnit.SECONDS
, new LinkedBlockingQueue<>()
, new UdpThreadFactory("io", Thread.NORM_PRIORITY));
, new UdpThreadFactory());
executorService.execute(new Runnable() {
@Override
public void run() {
Expand Down Expand Up @@ -366,13 +354,12 @@ public void setReceiveListener(OnUdpReceiveListener onUdpReceiveListener) {
private static final class UdpThreadFactory extends AtomicLong
implements ThreadFactory {
private static final AtomicInteger POOL_NUMBER = new AtomicInteger(1);
private static final long serialVersionUID = -9209200509960368598L;
private final String namePrefix;
private final int priority;
private final boolean isDaemon;

UdpThreadFactory(String prefix, int priority) {
this(prefix, priority, false);
UdpThreadFactory() {
this(TAG, Thread.NORM_PRIORITY, false);
}

UdpThreadFactory(String prefix, int priority, boolean isDaemon) {
Expand All @@ -390,19 +377,19 @@ public Thread newThread(@NonNull Runnable r) {
public void run() {
try {
super.run();
} catch (Throwable t) {
Log.e("ThreadUtils", "Request threw uncaught throwable", t);
} catch (Throwable e) {
Log.e(TAG, "run threw throwable", e);
}
}
};
t.setDaemon(isDaemon);
t.setPriority(priority);
t.setUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
@Override
public void uncaughtException(Thread t, Throwable e) {
System.out.println(e);
Log.e(TAG, t.getName() + "Request threw uncaught throwable", e);
}
});
t.setPriority(priority);
return t;
}
}
Expand Down

0 comments on commit cb69489

Please sign in to comment.