「java中多线程编程案例」Java 多线程编程

博主:adminadmin 2022-12-15 14:03:07 90

今天给各位分享java中多线程编程案例的知识,其中也会对Java 多线程编程进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

JAVA多线程 编程题两个案例,不会写,求大神写出代码,万分感谢,多线程还没学。

/*

class A extends Thread

{

public void run()

{

try

{

Thread.sleep(1000);

}catch(Exception e)

{

System.out.println("A ERROR!");

}

System.out.println("AAAA");

}

}

class B extends Thread

{

public void run()

{

try

{

Thread.sleep(2000);

}catch(Exception e)

{

System.out.println("B ERROR!");

}

System.out.println("BBBB");

}

}

class C extends Thread

{

public void run()

{

try

{

Thread.sleep(3000);

}catch(Exception e)

{

System.out.println("C ERROR!");

}

System.out.println("CCCC");

}

}

public class Test_1

{

public static void main(String[] args)

{

A a = new A();

B b = new B();

C c = new C();

a.start();

b.start();

c.start();

}

}*/

public class Test_1

{

public static void main(String[] args)

{

A a = new A();

B b = new B();

C c = new C();

Thread ta = new Thread(a);

Thread tb = new Thread(b);

Thread tc = new Thread(c);

ta.start();

tb.start();

tc.start();

}

}

class A implements Runnable

{

public void run()

{

try

{

Thread.sleep(1000);

}catch(Exception e)

{

System.out.println("A ERROR!");

}

System.out.println("AAAA");

}

}

class B implements Runnable

{

public void run()

{

try

{

Thread.sleep(2000);

}catch(Exception e)

{

System.out.println("B ERROR!");

}

System.out.println("BBBB");

}

}

class C implements Runnable

{

public void run()

{

try

{

Thread.sleep(3000);

}catch(Exception e)

{

System.out.println("C ERROR!");

}

System.out.println("CCCC");

}

}

案例一的两种方法已经写好;现在有事,晚上再把案例二代码写一下,应该没关系吧!

抱歉,是一个线程类,我看错了,晚上重发一下代码!

java的多线程简单例子

package e;

public class A 

{

public static void main(String args[]) throws Exception

{

new TestThread().start();

for(int i=0;i10;i++)

{

        Thread.sleep(3000);

System.out.println("main");

}

}

}

class TestThread extends Thread

{

public void run()

{

for(int i=0;i10;i++)

{

System.out.println("Test");

}

}

}

一个简单java多线程的示例

for(int i=0;i10;i++){

System.out.println(name+"运行,i="+i);

Thread.sleep(1)

}

for循环这样改就行了,因为输出10个数比较小,当你启动启动第二个线程时第一个线程已经运行完毕,所以两次输出都是顺序输出,要么将i设置很大很大,要么让每次打印暂停一下

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

java中的消息队列

消息队列是线程间通讯的手段:

import java.util.*

public class MsgQueue{

private Vector queue = null;

public MsgQueue(){

queue = new Vector();

}

public synchronized void send(Object o)

{

queue.addElement(o);

}

public synchronized Object recv()

{

if(queue.size()==0)

return null;

Object o = queue.firstElement();

queue.removeElementAt(0);//or queue[0] = null can also work

return o;

}

}

因为java中是locked by object的所以添加synchronized 就可以用于线程同步锁定对象

可以作为多线程处理多任务的存放task的队列。他的client包括封装好的task类以及thread类

Java的多线程-线程间的通信2009-08-25 21:58

1. 线程的几种状态

线程有四种状态,任何一个线程肯定处于这四种状态中的一种:

1) 产生(New):线程对象已经产生,但尚未被启动,所以无法执行。如通过new产生了一个线程对象后没对它调用start()函数之前。

2) 可执行(Runnable):每个支持多线程的系统都有一个排程器,排程器会从线程池中选择一个线程并启动它。当一个线程处于可执行状态时,表示它可能正处于线程池中等待排排程器启动它;也可能它已正在执行。如执行了一个线程对象的start()方法后,线程就处于可执行状态,但显而易见的是此时线程不一定正在执行中。

3) 死亡(Dead):当一个线程正常结束,它便处于死亡状态。如一个线程的run()函数执行完毕后线程就进入死亡状态。

4) 停滞(Blocked):当一个线程处于停滞状态时,系统排程器就会忽略它,不对它进行排程。当处于停滞状态的线程重新回到可执行状态时,它有可能重新执行。如通过对一个线程调用wait()函数后,线程就进入停滞状态,只有当两次对该线程调用notify或notifyAll后它才能两次回到可执行状态。

2. class Thread下的常用函数函数

2.1 suspend()、resume()

1) 通过suspend()函数,可使线程进入停滞状态。通过suspend()使线程进入停滞状态后,除非收到resume()消息,否则该线程不会变回可执行状态。

2) 当调用suspend()函数后,线程不会释放它的“锁标志”。

例11:

class TestThreadMethod extends Thread{

public static int shareVar = 0;

public TestThreadMethod(String name){

super(name);

}

public synchronized void run(){

if(shareVar==0){

for(int i=0; i5; i++){

shareVar++;

if(shareVar==5){

this.suspend(); //(1)

}}}

else{

System.out.print(Thread.currentThread().getName());

System.out.println(" shareVar = " + shareVar);

this.resume(); //(2)

}}

}

public class TestThread{

public static void main(String[] args){

TestThreadMethod t1 = new TestThreadMethod("t1");

TestThreadMethod t2 = new TestThreadMethod("t2");

t1.start(); //(5)

//t1.start(); //(3)

t2.start(); //(4)

}}

关于java中多线程编程案例和Java 多线程编程的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-12-15,除非注明,否则均为首码项目网原创文章,转载请注明出处。