关于线程的问题 不会写 太纠结了

黑菜妞妞 发布于 2011/08/18 15:10
阅读 406
收藏 0

假如我现在有10条数据,每次向容器中放入2条,这个放的操作每次的时间间隔是60毫秒,这个操作该怎么用线程来表示呢???

加载中
0
红薯
红薯

写了个,不知道是不是你想要的那个意思

package net.oschina.tester;

import java.util.*;

public class Test {

	public static void main(String[] args) {
		final List<Integer> src = new ArrayList<Integer>(){{//源容器
			for(int i=1;i<=10;i++)
				add(i);
		}};
		final List<Integer> dest = new ArrayList<Integer>();//目标容器
		
		new Thread(){
			int count_once = 2;//每次放2个元素
			int pos = 0;
			@Override
			public void run() {
				while(true){
					for(int i=0;i<count_once && pos<src.size();i++){
						dest.add(src.get(pos++));
					}
					//间隔时间60毫秒
					try {
						Thread.sleep(60);
					} catch (InterruptedException e) {
						break;
					}
					System.out.printf("pos=%d\n",pos);
					if(pos >= src.size())
						break;
				}
			}
			
		}.start();
	}
	
}
黑菜妞妞
黑菜妞妞
是我说的那个东西( ⊙o⊙ )哇,老大速度真快( ⊙o⊙ )哇。我想了好久了,不知道该怎么写( ⊙o⊙ )哇。O(∩_∩)O谢谢
0
韭精过敏
韭精过敏
向容器添加数据时 通过队列来实现即可。还可实现多线程同时添加时,仍然达到你的效果
0
RainJ
RainJ
怎么觉得这个并非一个多线程的问题?
返回顶部
顶部