「java传数据到线程」java多线程上传

博主:adminadmin 2022-12-06 01:24:06 62

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

本文目录一览:

java线程传值的问题

把那些对象类型的变量定义为 static 类型

或者,有一个线程间传值得方法,管道技术,不知道你有没有接触这方面的内容:

Java中利用管道实现线程间的通讯

管道(pipe)流是一种特殊的流,用于在不同线程(threads)间直接传送数据。一个线程发送数据到输出管道,另一个线程从输入管道中读数据。通过使用管道,实现不同线程间的通讯。

你可以搜艘县官的内容,相信对你有帮助

java中怎么把一个线程里面的变量传到另一个线程

把这个变量定义提取到线程外部, 线程通过引用持有这个变量, 这样就可以实现变量的共享, 这个时候就要注意线程同步的问题.

java实时数据字符串对象怎么在线程间传递

实际上并不是那么简单的用管道流实现的,当然如果你能保证同步的话可以直接用管道

线程这个东西本来就是共享进程资源的,所以没有特殊的传送机制,直接使用就行了。在java中就是直接使用对象里的字段。

你这个就是一个生产者消费者模型,可以用一个队列实现,接受socket作为生产者往一个队列中存字符串,然后唤醒发送socket(也就是消费者了),消费者在一个无限循环中读取队列中的字符串,并且以其作为信号量实现同步

java 如何传一个变量与对象进线程。

你现在写的线程是用匿名内部类的形式写的,这样是没法传对象进线程的,需要用显式声明的实现Runnable接口的类的构造函数来接收传进线程的对象.

我给你个向线程里传对象的Java程序的例子,你看看吧.

class BaoZi{

 int id;

 BaoZi(int id){

  this.id = id;

 }

 public String toString() {

  return "BaoZi :" + id;

 }

}

class BamBooBasket {

 int index = 0;

 BaoZi[] bbb = new BaoZi[6];

 public synchronized void put(BaoZi b)  {

  if(index == bbb.length) {

   try{

    this.wait();

   } catch(InterruptedException e) {

    e.printStackTrace();

   }  

  }else{

   this.notify();

   bbb[index] = b;

   index ++;

  }

 }

 public synchronized BaoZi pop() {

  if(index == 0) {

   try{

    this.wait();

   } catch (InterruptedException e) {

    e.printStackTrace();

   }

  }else{

   this.notify();

   index--;

  }

  return bbb[index];

 }

}

class Producer implements Runnable {

 BamBooBasket bb =null;

 Producer(BamBooBasket bb) {

  this.bb = bb;

 }

 public  void run() {

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

   BaoZi b = new BaoZi(i);

   bb.put(b);

   System.out.println("生产了:" + b);

   try {

    Thread.sleep(1000);

   } catch (InterruptedException e) {

    e.printStackTrace();

   }

  }

 }

}

class Consumer implements Runnable {

 BamBooBasket bb = null;

 Consumer(BamBooBasket bb) {

  this.bb = bb;

 }

 public  void run() {

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

   BaoZi b = bb.pop();

   System.out.println("消费了 :"+ b);

   try {

    Thread.sleep(1000);

   } catch (InterruptedException e) {

    e.printStackTrace();

   }

  }

 }

}

public class ProducerConsumer {

 public static void main(String[] args) {

  BamBooBasket bbb = new BamBooBasket();

  Producer p1 = new Producer(bbb);

  Consumer p2 = new Consumer(bbb);

  Thread t1 = new Thread(p1);

  Thread t2 = new Thread(p2);

  t1.start();

  t2.start();

 }

}

Java多线程编程,怎样实现线程间数据的传递?

可以用Scoket套接字让服务器和客户端建立连接

可以根据Scoket对象的getInputStream()和getOutputStream()获得输入输出流

再往流里面写信息

就实现了简单的数据传递

当然等待数据

的时候会有阻塞现象

所以使用线程来保证数据不会因为等待而阻塞

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

The End

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