package zhu.suo;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.BlockingQueue;
/*1.四个线程共用4秒打印出16条日志
*
* 解析:
* 在print方法中
* 第一秒 四个进程同时带一个数据进入
* 同样。。
* */
public class Test1 {
public static void main(String[] args) {
final BlockingQueue quee = new ArrayBlockingQueue<String>(16);
for (int i=1;i<5;i++)
{
new Thread(
new Runnable() {
@Override
public void run() {
while(true)
try {
print(quee.take());
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
).start();
}
for (int i=1;i<17;i++)
{
String s = "i:"+i;
try {
quee.put(s);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
static void print(Object log)
{
System.out.println("current:"+System.currentTimeMillis()/1000+",log="+log);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.BlockingQueue;
/*1.四个线程共用4秒打印出16条日志
*
* 解析:
* 在print方法中
* 第一秒 四个进程同时带一个数据进入
* 同样。。
* */
public class Test1 {
public static void main(String[] args) {
final BlockingQueue quee = new ArrayBlockingQueue<String>(16);
for (int i=1;i<5;i++)
{
new Thread(
new Runnable() {
@Override
public void run() {
while(true)
try {
print(quee.take());
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
).start();
}
for (int i=1;i<17;i++)
{
String s = "i:"+i;
try {
quee.put(s);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
static void print(Object log)
{
System.out.println("current:"+System.currentTimeMillis()/1000+",log="+log);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}