所以,我正在尝试使用线程池和ConcurrentLinkedQueue来进行大量下载.我的问题是,在下面的(可运行的)代码中,当Threads开始时,各个SingleDownloads的日历日期的设置随机切换.我对此感到困惑的原因是因为ConcurrentLinkedQueue是线程安全的.我必须在某处犯错.
SAMPLE OUTPUT:
app30 2014-12-24 2015-01-23
app29 2014-12-26 2015-01-24
app28 2014-12-28 2015-01-25
...
OUTPUT OMITTED
...
Downloading: app29 2014-12-26 2015-01-24
Downloading: app28 2014-12-30 2015-01-26
Downloading: app30 2014-12-26 2015-01-24
Run Code Online (Sandbox Code Playgroud)
如您所见,日期随机变化.
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.concurrent.ConcurrentLinkedQueue;
public class DownStack {
private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
private volatile static boolean running = true;
private volatile static int threadsCompleted;
private static ConcurrentLinkedQueue<Runnable> taskQueue;
private static DownloadThread[] downloadThreads;
private static String[] status;
static class SingleDownload {
String app; …Run Code Online (Sandbox Code Playgroud) 如果我有另一个 Schema 的表的 Synonym,我可以在 Synonym 中插入内容吗?如果是的话,是否也会影响原来的表呢?