java 多线程参数传递的问题

mqm_2008 2013-05-31 05:57:56
请教一下java中多线程之间如何传递参数
参数类型 不确定 ,参数的数量也不确定,只有执行时才知道

我知道有一个pass by block的东西 但是还没有弄明白

谁有线索指点一下
...全文
838 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
mqm_2008 2013-06-12
  • 打赏
  • 举报
回复
我的要求比较特殊 呵呵 谢谢大家 结贴
Storm-Shadow 2013-06-11
  • 打赏
  • 举报
回复
引用 7 楼 preferme 的回复:
楼主问的应该是多线程之间,数据的传递吧。或者,线程间的通信。 参数,一般是指,调用方法的前提数据。 线程之间,数据的传递,一般有以下几种方法: 1. 共享数据区域: 比如,共享数据对象,队列,文件等等。 2. 虚拟管道:一个线程向管道里写入数据,另一个线程读取数据。 3. Socket、RMI等等。 一般都选用第一种,共享数据的方法。简单、高效,涉及线程同步(或数据同步)问题。
楼上正解
杨无邪 2013-06-11
  • 打赏
  • 举报
回复
static关键字 这例子跟你问的有关系吗?
mqm_2008 2013-06-11
  • 打赏
  • 举报
回复
对于共享数据区,读的线程如何知道类型呢? 我的参数类型是不固定的,即使知道类型(getClass),在转换的过程中也会出现问题, 举个例子吧 我尝试使用Object 来传递,但是调用函数的时候就出错了(参数类型不匹配),如何正确处理para才能调用函数呢? public class test { public static void main(String[] args) { Object [] para = new Object[10]; boolean flag = true; para[1]= 123; para[2]= "test string"; para[3]=flag; test_nex(para[1],para[3], para[2]); //这里就出错了 return ; } public int test_nex(int i, boolean j, String s) { System.out.println("paras are:" +i + j + s); return 0; } }
冰思雨 2013-06-03
  • 打赏
  • 举报
回复
楼主问的应该是多线程之间,数据的传递吧。或者,线程间的通信。 参数,一般是指,调用方法的前提数据。 线程之间,数据的传递,一般有以下几种方法: 1. 共享数据区域: 比如,共享数据对象,队列,文件等等。 2. 虚拟管道:一个线程向管道里写入数据,另一个线程读取数据。 3. Socket、RMI等等。 一般都选用第一种,共享数据的方法。简单、高效,涉及线程同步(或数据同步)问题。
qq346448412 2013-06-03
  • 打赏
  • 举报
回复
定义一MAP
l_9style 2013-06-03
  • 打赏
  • 举报
回复
楼上已经总结很详细 楼主说的pass by block其实就是楼上诸位提到的static全局变量。
mqm_2008 2013-05-31
  • 打赏
  • 举报
回复
还有参数的顺序 int int string 和 int string int 也是不一样的啊
mqm_2008 2013-05-31
  • 打赏
  • 举报
回复
但是这个参数的数量和类型是不确定的 如何定义这个类呢 比如 5个 int的 和5个string的就是需要不同的定义啊 还有一些用户自己定义的类型,这个类是事先不知道的,如何定义呢
wei_ya_wen 2013-05-31
  • 打赏
  • 举报
回复
可以通过设置 共享数据变量 ,但是需要同步方法。
rumlee 2013-05-31
  • 打赏
  • 举报
回复
多线程数据传递很容易啊,定义一个static的全局变量不就结了。全部都往这个对象里面放。
失落夏天 2013-05-31
  • 打赏
  • 举报
回复
把参数定义到一个类里面 那就让这多个线程都来读和写同一个类的成员变量。 这个类里面的set方法加锁。

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧