Skip to content

Commit 5e03fbf

Browse files
author
yangsen
committed
handle dns thread pool
1 parent 6fce0a6 commit 5e03fbf

File tree

3 files changed

+19
-5
lines changed

3 files changed

+19
-5
lines changed

library/src/main/java/com/qiniu/android/http/dns/HttpDns.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,21 +10,28 @@
1010
import java.net.UnknownHostException;
1111
import java.util.ArrayList;
1212
import java.util.List;
13+
import java.util.concurrent.ExecutorService;
14+
import java.util.concurrent.LinkedBlockingQueue;
15+
import java.util.concurrent.ThreadPoolExecutor;
16+
import java.util.concurrent.TimeUnit;
1317

1418
public class HttpDns implements Dns {
1519

1620
private IResolver httpIpv4Resolver;
1721
private IResolver httpIpv6Resolver;
1822

23+
private static final ExecutorService executor = new ThreadPoolExecutor(0, 4,
24+
60L, TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>());
25+
1926
public HttpDns(int timeout) {
2027
String[] dohIpv4Servers = GlobalConfiguration.getInstance().getDohIpv4Servers();
2128
if (dohIpv4Servers != null && dohIpv4Servers.length > 0) {
22-
httpIpv4Resolver = new DohResolver(dohIpv4Servers, Record.TYPE_A, timeout);
29+
httpIpv4Resolver = new DohResolver(dohIpv4Servers, Record.TYPE_A, timeout, executor);
2330
}
2431

2532
String[] dohIpv6Servers = GlobalConfiguration.getInstance().getDohIpv6Servers();
2633
if (dohIpv6Servers != null && dohIpv6Servers.length > 0) {
27-
httpIpv6Resolver = new DohResolver(dohIpv6Servers, Record.TYPE_A, timeout);
34+
httpIpv6Resolver = new DohResolver(dohIpv6Servers, Record.TYPE_A, timeout, executor);
2835
}
2936
}
3037

library/src/main/java/com/qiniu/android/http/dns/SystemDns.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
public class SystemDns implements Dns {
2323

2424
private int timeout = 10;
25-
private static final ExecutorService executor = new ThreadPoolExecutor(1, 3,
25+
private static final ExecutorService executor = new ThreadPoolExecutor(0, 4,
2626
60L, TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>());
2727

2828
public SystemDns() {

library/src/main/java/com/qiniu/android/http/dns/UdpDns.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,20 +10,27 @@
1010
import java.net.UnknownHostException;
1111
import java.util.ArrayList;
1212
import java.util.List;
13+
import java.util.concurrent.ExecutorService;
14+
import java.util.concurrent.LinkedBlockingQueue;
15+
import java.util.concurrent.ThreadPoolExecutor;
16+
import java.util.concurrent.TimeUnit;
1317

1418
public class UdpDns implements Dns {
1519
private IResolver udpIpv4Resolver;
1620
private IResolver udpIpv6Resolver;
1721

22+
private static final ExecutorService executor = new ThreadPoolExecutor(0, 4,
23+
60L, TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>());
24+
1825
public UdpDns(int timeout) {
1926
String[] udpIpv4Servers = GlobalConfiguration.getInstance().getUdpDnsIpv4Servers();
2027
if (udpIpv4Servers != null && udpIpv4Servers.length > 0) {
21-
udpIpv4Resolver = new DnsUdpResolver(udpIpv4Servers, Record.TYPE_A, timeout);
28+
udpIpv4Resolver = new DnsUdpResolver(udpIpv4Servers, Record.TYPE_A, timeout, executor);
2229
}
2330

2431
String[] udpIpv6Servers = GlobalConfiguration.getInstance().getUdpDnsIpv6Servers();
2532
if (udpIpv6Servers != null && udpIpv6Servers.length > 0) {
26-
udpIpv6Resolver = new DnsUdpResolver(udpIpv6Servers, Record.TYPE_A, timeout);
33+
udpIpv6Resolver = new DnsUdpResolver(udpIpv6Servers, Record.TYPE_A, timeout, executor);
2734
}
2835
}
2936

0 commit comments

Comments
 (0)