Java中关于如何实现多线程消息队列的实例java多线程通信

java中的消息队列 消息队列是线程间通讯的手段:importjava.util.publicclassMsgQueue{ privateVectorqueue=null;publicMsgQueue(){ queue=newVector();} publicvoidsend(Objecto){ queue.addElement(o);} publicObjectrecv(){ if(queue.size()==0)returnnull;Objecto=queue.();queue.(0);//or...
Java中关于如何实现多线程消息队列的实例java多线程通信
java中的消息队列
消息队列是线程间通讯的手段:
importjava.util.*
publicclassMsgQueue{
privateVectorqueue=null;
publicMsgQueue(){
queue=newVector();
}
publicvoidsend(Objecto)
{
queue.addElement(o);
}
publicObjectrecv()
{
if(queue.size()==0)
returnnull;
Objecto=queue.();
queue.(0);//orqueue[0]=nullcanalsowork
returno;
}
}
因为java中是lockedbyobject的所以添加就可以用于线程同步锁定对象
可以作为多线程处理多任务的存放task的队列。他的client包括封装好的task类以及thread类
Java的多线程-线程间的通信2009-08-2521:58
1.线程的几种状态
线程有四种状态,任何一个线程肯定处于这四种状态中的一种:
1)产生(New):线程对象已经产生,但尚未被启动,所以无法执行。如通过new产生了一个线程对象后没对它调用start()函数之前。
2)可执行(Runnable):每个支持多线程的系统都有一个排程器,排程器会从线程池中选择一个线程并启动它。当一个线程处于可执行状态时,表示它可能正处于线程池中等待排排程器启动它;也可能它已正在执行。如执行了一个线程对象的start()方法后,线程就处于可执行状态,但显而易见的是此时线程不一定正在执行中。
3)死亡(Dead):当一个线程正常结束,它便处于死亡状态。如一个线程的run()函数执行完毕后线程就进入死亡状态。
4)停滞(Blocked):当一个线程处于停滞状态时,系统排程器就会忽略它,不对它进行排程。当处于停滞状态的线程重新回到可执行状态时,它有可能重新执行。如通过对一个线程调用wait()函数后,线程就进入停滞状态,只有当两次对该线程调用notify或notifyAll后它才能两次回到可执行状态。
2.classThread下的常用函数函数
2.1suspend()、resume()
1)通过suspend()函数,可使线程进入停滞状态。通过suspend()使线程进入停滞状态后,除非收到resume()消息,否则该线程不会变回可执行状态。
2)当调用suspend()函数后,线程不会释放它的“锁标志”。
例11:
classextendsThread{
publicstaticintshareVar=0;
public(Stringname){
super(name);
}
publicvoidrun(){
if(shareVar==0){
for(inti=0;i<5;i){
shareVar;
if(shareVar==5){
this.suspend();//(1)
}}}
else{
System.out.print(Thread.().getName());
System.out.println("shareVar="shareVar);
this.resume();//(2)
}}
}
publicclassTestThread{
publicstaticvoidmain(String[]args){
t1=new("t1");
t2=new("t2");
t1.start();//(5)
//t1.start();//(3)
t2.start();//(4)
}}
2023-04-26
mengvlog 阅读 25 次 更新于 2025-09-09 12:12:57 我来答关注问题0
  •  快乐生活 实现多线程的两种方式,区别和好处有哪些

    1. 实现多线程的两种主要方式是扩展 `java.lang.Thread` 类和实现 `java.lang.Runnable` 接口。2. 扩展 `Thread` 类是直接继承该类并创建一个新的线程类。这种方式的优点在于可以直接使用 `Thread` 类的方法和属性。3. 实现 `Runnable` 接口是创建一个实现了 `Runnable` 接口的类,然后将该类的...

  •  约定20125 JAVA多线程有哪几种实现方式

    1、继承Thread类实现多线程继承Thread类的方法尽管被我列为一种多线程实现方式,但Thread本质上也是实现了Runnable接口的一个实例,它代表一个线程的实例,并且,启动线程的唯一方法就是通过Thread类的start()实例方法。start()方法是一个native方法,它将启动一个新线程,并执行run()方法。这种方式实现多...

  •  1024程序酱 用Java实现多线程有哪些途径?

    1,创建Thread类的子类 在这个途径中,用户程序需要创建自己的Thread类的子类,并在子类中重新定义自己的run()方法,这个run()方法中包含了用户线程的操作。这样在用户程序需要建立自己的线程时,它只需要创建一个已定义好的Thread子类的实例就可以了。例:public class TestThread{ ...(中间的就不写了...

  •  翡希信息咨询 Java并发——如何处理多线程并发安全的问题

    Java并发中处理多线程并发安全的问题,可以通过以下几种方式:1. 同步机制 synchronized:基本介绍:synchronized 是 Java 中最基本的同步机制之一,它可以用来修饰方法或代码块,确保同一时间只有一个线程可以访问被同步的代码区域。实现原理:synchronized 的实现依赖于 JVM 的内置锁机制(也称为监视器锁)。

  •  阿暄生活 java多线程是什么

    死锁:多个线程相互等待对方释放资源,导致程序无法继续执行。资源消耗:创建和管理线程需要消耗系统资源,过多的线程可能导致性能下降。综上所述,Java多线程是实现并发机制的一种有效手段,通过合理地使用多线程,可以提高程序的运行效率和响应速度,但也需要注意线程安全、死锁和资源消耗等问题。

檬味博客在线解答立即免费咨询

Java相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部