java例程练习(网络编程[简单双向通信试验])

摘要: import java.net.*;import java.io.*;public class TestTCPServer { public static void main(String[] args) { InputStream in = null; OutputStream out = null; try { ServerSocket ss = new ServerSocket(8888); Socket socket = ss.accept(); in = socket.getInputStream(); out = socket.getOutputStre... 阅读全文
posted @ 2012-05-06 13:07 Yours风之恋 阅读(172) 评论(0) 推荐(0) 编辑

java例程练习(网络编程[简单网络连接试验])

摘要: import java.net.*;import java.io.*;public class TestTCPServer { public static void main(String[] args) { try { ServerSocket ss = new ServerSocket(6666);//阻塞式的 while(true) { //未经行异常处理!// Socket s = ss.accept();// DataInputStream dis = // new DataInputStream(s.getInputStream());/... 阅读全文
posted @ 2012-05-06 12:46 Yours风之恋 阅读(184) 评论(0) 推荐(0) 编辑

java例程练习(多线程综合练习[生产者-消费者问题])

摘要: /* * 生产者与消费者问题 * 此问题用到Object类的wait(),notify() * 还要注意一个问题: * sleep()与wait()的区别: * sleep()过程中,对象仍未解锁 * wait ()过程中,对象解锁,其他线程可以访问当前对象,当唤醒时需重新锁定 */public class Test { public static void main(String[] args) { ThingsStack ts = new ThingsStack(); Producer p = new Producer(ts); Consumer c = new Consum... 阅读全文
posted @ 2012-05-05 22:17 Yours风之恋 阅读(203) 评论(0) 推荐(0) 编辑

java例程练习(关于线程同步的补充)

摘要: /* * 从运行结果看,当m1()方法被锁定后,m2()方法仍然可以执行。 * 而且b的值被改变。由此可以得出结论: * sychronized 只是防止其定义的代码段被同时调用。 * */public class Test implements Runnable{ int b = 100; public synchronized void m1() throws Exception { b = 1000; Thread.sleep(5000); System.out.println("b = " + b); } public void m2() { System.out. 阅读全文
posted @ 2012-05-05 20:53 Yours风之恋 阅读(110) 评论(0) 推荐(0) 编辑

java例程练习(多线程[死锁问题])

摘要: /* *死锁产生有2个原因: *1,资源竞争 *2,进程间的推进顺序非法 * *程序模拟的是第一个情况 */public class TestDeadLock implements Runnable { public int flag = 1; static Object o1 = new Object(); static Object o2 = new Object(); public void run() { System.out.println("flag=" + flag); if(flag == 1) { synchronized(o1) { try { Thr. 阅读全文
posted @ 2012-05-05 16:00 Yours风之恋 阅读(140) 评论(0) 推荐(0) 编辑

java例程练习(多线程[线程同步问题])

摘要: //线程同步问题public class TestThread implements Runnable{ Timer timer = new Timer(); public static void main(String[] args) { TestThread test = new TestThread(); Thread t1 = new Thread(test); Thread t2 = new Thread(test); t1.setName("t1"); t2.setName("t2"); t1.start(); t2.start(); } p 阅读全文
posted @ 2012-05-05 15:26 Yours风之恋 阅读(156) 评论(0) 推荐(0) 编辑

java例程练习(多线程[线程的优先级等等])

摘要: //设置线程的优先级public class TestThread1 { public static void main(String[] args) { Thread t1 = new Thread(new T1()); Thread t2 = new Thread(new T2()); t1.setPriority(Thread.NORM_PRIORITY + 3); t1.start(); t2.start(); }}class T1 implements Runnable { public void run() { for(int i = 0; i 0) { Sys... 阅读全文
posted @ 2012-05-05 14:34 Yours风之恋 阅读(144) 评论(0) 推荐(0) 编辑

java例程练习(多线程[yield()方法])

摘要: public class Test { public static void main(String[] args) { MyThread m1 = new MyThread("m1"); MyThread m2 = new MyThread("m2"); m1.start(); m2.start(); }}class MyThread extends Thread { MyThread(String s) { super(s); } public void run() { for(int i = 1; i <= 100; i++) { Syste 阅读全文
posted @ 2012-05-04 23:26 Yours风之恋 阅读(157) 评论(0) 推荐(0) 编辑

java例程练习(多线程[join()方法])

摘要: public class Test { public static void main(String[] args) { MyThread myThread = new MyThread("m1"); myThread.start(); //产生分支,子线程开始执行 try{ myThread.join();//------等待合并myThread子线程,主线程才开始执行 } catch(InterruptedException e) {} for(int i = 1; i <= 10; i++) { System.out.println("I am mai 阅读全文
posted @ 2012-05-04 23:15 Yours风之恋 阅读(139) 评论(0) 推荐(0) 编辑

java例程练习(多线程[sleep()方法])

摘要: import java.util.*;public class Test { public static void main(String[] args) { MyThread thread = new MyThread(); thread.start(); try { Thread.sleep(10000);//主线程睡眠 } catch(InterruptedException e) { } thread.interrupt(); //-----------不是最好的方法 //thread.flag = false; //------... 阅读全文
posted @ 2012-05-04 23:01 Yours风之恋 阅读(165) 评论(0) 推荐(0) 编辑