java 多线程参数传递的问题 请教一下java中多线程之间如何传递参数参数类型 不确定 ,参数的数量也不确定,只有执行时才知道我知道有一个pass by block的东西 但是还没有弄明白谁有线索指点一下 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 把参数定义到一个类里面那就让这多个线程都来读和写同一个类的成员变量。这个类里面的set方法加锁。 多线程数据传递很容易啊,定义一个static的全局变量不就结了。全部都往这个对象里面放。 但是这个参数的数量和类型是不确定的 如何定义这个类呢比如 5个 int的 和5个string的就是需要不同的定义啊还有一些用户自己定义的类型,这个类是事先不知道的,如何定义呢 还有参数的顺序 int int string 和 int string int 也是不一样的啊 楼主问的应该是多线程之间,数据的传递吧。或者,线程间的通信。参数,一般是指,调用方法的前提数据。线程之间,数据的传递,一般有以下几种方法:1. 共享数据区域: 比如,共享数据对象,队列,文件等等。2. 虚拟管道:一个线程向管道里写入数据,另一个线程读取数据。3. Socket、RMI等等。一般都选用第一种,共享数据的方法。简单、高效,涉及线程同步(或数据同步)问题。 楼上已经总结很详细楼主说的pass by block其实就是楼上诸位提到的static全局变量。 对于共享数据区,读的线程如何知道类型呢? 我的参数类型是不固定的,即使知道类型(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; } } static关键字 这例子跟你问的有关系吗? 程序跟我预期的想的效果不一样,哪里出错了? 本地文件索引的菜鸟问题 java 反射问题,请看代码 关于IO问题 帮我看看这个程序的错误 我实在是找不到了~~ tomcat-5.0.24数据连接池问题 msn的振动闪屏...急急急!!!!谢谢拉 各位大虾 如何在一个button按钮上面放置图片??????????????????????? Compile的问题 请高手指点:I/O包里的类太多了,请问怎么学习? 我做的一个android新浪微博客户端,大家看一下,给点建议 jdk1.7的一些疑问
那就让这多个线程都来读和写同一个类的成员变量。
这个类里面的set方法加锁。
比如 5个 int的 和5个string的就是需要不同的定义啊
还有一些用户自己定义的类型,这个类是事先不知道的,如何定义呢
参数,一般是指,调用方法的前提数据。线程之间,数据的传递,一般有以下几种方法:
1. 共享数据区域: 比如,共享数据对象,队列,文件等等。
2. 虚拟管道:一个线程向管道里写入数据,另一个线程读取数据。
3. Socket、RMI等等。一般都选用第一种,共享数据的方法。简单、高效,涉及线程同步(或数据同步)问题。
我尝试使用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;
}
}