「java传数据到线程」java多线程上传
今天给各位分享java传数据到线程的知识,其中也会对java多线程上传进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、java线程传值的问题
- 2、java中怎么把一个线程里面的变量传到另一个线程
- 3、java实时数据字符串对象怎么在线程间传递
- 4、java 如何传一个变量与对象进线程。
- 5、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多线程上传的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-12-06,除非注明,否则均为
原创文章,转载请注明出处。