@Test
	public void testList() {
		ExecutorService threadPool = Executors.newSingleThreadExecutor();
		
		List<String> _list = new ArrayList<>();
		_list.add("1");
		_list.add("22");
		_list.add("33");
		list = _list;
//		list = Collections.synchronizedList(_list);
//		list = Collections.unmodifiableList(_list);
		
		threadPool.execute(new Runnable() {
			@Override
			public void run() {
				for (String string : list) {
//				for (int i=0; i<list.size(); i++) {
//					String string = list.get(i);
					System.out.printf(string + " ");
					try {
						Thread.sleep(1000);
					} catch (InterruptedException e) {
						e.printStackTrace();
					}
				}
				System.out.println();
			}
		});
		
		_list = new ArrayList<>();
		_list.add("a");
		try {
			Thread.sleep(100);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		_list.add("bb");
		list = _list;
		System.err.println(list);
//		list = Collections.synchronizedList(_list);
//		list = Collections.unmodifiableList(_list);
		
		threadPool.shutdown();
		try {
			Thread.sleep(3000);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
	}