JAVA线程一个小程序

JAVA线程一个小程序,第1张

你把线程类写到梁返主类里面了。。成了内部类了。。

写到氏辩外橡核饥面就是了哈。。

public class Example8_1 {

public static void main(String[] args) {

WriteWordThread zhang, wang

zhang = new WriteWordThread("张小红")// 出错

wang = new WriteWordThread("JamsKeven")// 出错

zhang.start()

for (int i = 1i <= 8i++) {

System.out.println("主线程运行.")

}

wang.start()

}

}

class WriteWordThread extends Thread {

WriteWordThread(String s) {

setName(s)

}

public void run() {

for (int i = 1i <= 8i++) {

System.out.println("我是线程:" + getName())

}

}

}

传统的进程通信的方式有大致如春没下几种肆森戚:

(1) 管道(PIPE)

(2) 命名管道(FIFO)

(3) 信号量(Semphore)

(4) 消息队列(MessageQueue)

(5) 共享内存(SharedMemory)

(6) Socket

Java如何支持进程间通信。我们把Java进程理解为JVM进程。很明显,传统的这些大部分技术是无法被我们的应用程序利用裂陵了(这些进程间通信都是靠系统调用来实现的)。但是Java也有很多方法可以进行进程间通信的。

除了上面提到的Socket之外,当然首选的IPC可以使用Rmi,或者Corba也可以。另外Java nio的MappedByteBuffer也可以通过内存映射文件来实现进程间通信(共享内存)。

楼主,这是一个多线程同步问题,我稍微修改了一下程序,仅供参考

PS:四个线程不一颤晌定都能抢到CUP时间片,所以有些线程有可能卖不到票。茄兆锋楼主可以多运行几次,会得到不同的运行效果,非常有意思。呵呵。猜祥。。

public class TestThread{

public static void main(String[] args){

MyThread mt = new MyThread()

new Thread(mt).start()

new Thread(mt).start()

new Thread(mt).start()

new Thread(mt).start()

}

}

class MyThread extends Thread{

private int t=100

public void run(){

while(true){

synchronized(this){//因为有多个线程共享属性t,故需要使用到synchronized,进行同步

if(t>0) System.out.println(Thread.currentThread().getName()+"卖票"+t--)

else break//此句是为了防止死循环,当t=0是退出循环

}

}

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12266466.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-22
下一篇2023-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存