java两个类A,B中分别都有一个线程,怎样能让A的线程中得到B类中线程的值,能举个简单的例子就最好了 两个线程,一个线程(a线程)出加数100以内加法题10道.由...

Java\u7ebf\u7a0b\u95ee\u9898\uff0c\u6025\u6025\u6025\uff0c\u5728\u7ebf\u7b49\uff0c\u73b0\u5728\u6709\u4e24\u4e2a\u7c7b\uff0cA\u548cB\uff0c\u90fd\u662f\u7ebf\u7a0b\u7c7b\uff0c\u4ed6\u4eec\u5171\u540c\u64cd\u4f5c\u4e00\u7ec4\u6570\u636e\uff0c\u5047\u5982A\u5bf9

\u4e0d\u786e\u5b9a\u662f\u8c01
\u7b49\u5f85\u7ebf\u7a0b\u662f\u653e\u5728\u7b49\u5f85\u5e8f\u5217\u91cc\u7684\uff0c\u800c\u6bcf\u6b21\u6267\u884c\u662f\u4ece\u5e8f\u5217\u91cc\u53d6\u51fa\u7b2c\u4e00\u4e2a\uff08\u800c\u7b2c\u4e00\u4e2a\u662f\u8c01\u662f\u4e0d\u786e\u5b9a\u7684\uff0c\u4e5f\u5c31\u662f\u8bf4\uff0c\u5047\u5982\u6267\u884c\u662fA1A2\uff0c\u6267\u884c\u65f6\u7684\u8c03\u5ea6\u662f\u4e0d\u786e\u5b9a\u6267\u884c\u7ed3\u679c\u7684\uff0c\u4e5f\u8bb8\u5b8c\u7ed3\u987a\u5e8f\u4e5f\u662fA1A2\uff0c\u6b64\u65f6\u8fdb\u5165\u7b49\u5f85\u5e8f\u5217\u7684\u4e5f\u662fA1A2\uff0c\u4f46\u5b8c\u7ed3\u987a\u5e8f\u4e5f\u53ef\u80fd\u662fA2A1\uff0c\u6b64\u65f6\u8fdb\u5165\u7b49\u5f85\u5e8f\u5217\u7684\u5c31\u662fA2A1\u4e86\uff0c\u4e0b\u6b21\u4ece\u7b49\u5f85\u5e8f\u5217\u91cc\u53d6\u7684\u987a\u5e8f\u8ddf\u8fdb\u6765\u7684\u987a\u5e8f\u5bf9\u5e94\uff0c\u6240\u4ee5\u53ef\u80fd\u662fA1A2\uff0c\u4e5f\u53ef\u80fd\u662fA2A1\uff0c\u95ee\u9898\u5c31\u662f\u51fa\u5728\u591a\u7ebf\u7a0b\u7684\u65f6\u5019\uff0c\u540c\u65f6\u5f00\u59cb\u6267\u884c\u7684\u7ebf\u7a0b\u7ed3\u675f\u7684\u65f6\u5e8f\u8ddf\u542f\u52a8\u7684\u65f6\u5e8f\u662f\u4e0d\u4fdd\u8bc1\u76f8\u540c\u7684\uff09

package com.zhidao20161208;public class ThreadA extends Thread { private boolean status = true; public void run() { int i = 1; while (status) { // try { Thread.sleep(1); int a = getNum(); int b = getNum(); BeanOne.list.add(a + "," + b);// \u5199\u5165ConcurrentLinkedQueue\uff08\u7ebf\u7a0b\u5b89\u5168\u7684\u961f\u5217\u53ef\u4ee5\u652f\u6301\u591a\u7ebf\u7a0b\uff09 } catch (Exception e) { e.printStackTrace(); } i++; if (i >= 11) { status = false; } } } public int getNum() { return (int) (Math.random() * 100); }}package com.zhidao20161208;import java.util.concurrent.ConcurrentLinkedQueue;public class BeanOne extends Thread { public static ConcurrentLinkedQueue list = new ConcurrentLinkedQueue(); private boolean status = true; public void run() { int i =1; while (status) { String str = list.poll();// \u6bcf\u6b21\u5f39\u51fa\u4e00\u4e2a\u5143\u7d20\u9075\u5faa\u5148\u5165\u5148\u51fa\u7684\u539f\u5219 if(str!=null) { i=1; String [] num = str.split(","); System.out.println(num[0]+"+"+num[1]+"="+(Integer.parseInt(num[0])+Integer.parseInt(num[1]))); } else { System.out.println("\u6ca1\u6709\u751f\u6210\u9898\u76ee\uff0c\u5f00\u59cb\u7ed3\u675f\u5012\u8ba1\u65f6\uff1a"+(10-i)); if(i>=10) { System.out.println("\u7b49\u5f8510\u79d2\u4e00\u76f4\u6ca1\u6709\u9898\u76ee\u751f\u6210\uff0c\u7ebf\u7a0b\u7ed3\u675f"); status = false; } try { Thread.sleep(1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } i++; } }}public static void main(String[] args) { ThreadA a = new ThreadA(); a.start(); BeanOne b = new BeanOne(); b.start(); }

如果这线程不是做成死循环的,可利用JAVA的堆内存原理设置一下final static的对象。如果这两个线程都是一直在跑的可考虑用JDK1.5以后有的concurrent包中的队列LinkedBlockingQueue对象实现一个线程保存,另一个线程取出。当然这传和收线程的LinkedBlockingQueue对象必须是同一个。

保存线程中用LinkedBlockingQueue对象的put方法将其添加到这个对象的队列中;

取出线程中代码片段:
BlockingQueue<Object> queue;
public void run() {
while(true){
List<Object> list = new ArrayList<Object>();
try {
synchronized(Thread.currentThread()){
Thread.currentThread().wait(15000);
}
//waiter.await(5, TimeUnit.SECONDS);
int listSize = queue.drainTo(list, 2500);//用队列的方式将list中的数据一填充500个,一次操作填充500
if(listSize == 0){
continue;
}
//这里是具体的操作
logger.fatal("Get "+listSize+" ap5min object from Queue!");
list.clear();

/*list.add(obj);

if(list.size() == 100){
dao.batchSaveOrUpdate(list, 100);
list.clear();
}*/

} catch(Exception e) {
logger.error("保存数据出现异常:",e);
}
}
}

class A extends Thread{
B b = new B();

public void run(){
b.i = 10;或者把B中的i改为static修饰
然后用 B.i =10 也是可以的
}

}
class B extends Thread{
int i = 1/static int i = 1;

}

可以将b类中的那个值设置为static,通过B.变量名来获取。

  • java鏈堿,B涓や釜绫,A绫涓湁涓涓彉閲弜,杩欎釜鍙橀噺鍊煎湪A绫讳腑鏀瑰彉浜嗗,濡備綍鍦...
    绛旓細鍙互閫氳繃static鍏抽敭瀛椾慨楗版垚鍛樺彉閲锛宻tatic琛ㄧず鐨勬剰鎬濇槸璇ユ垚鍛樺彉閲忎负绫绘墍鎷ユ湁锛屽苟涓嶆槸鏌愪竴鍏蜂綋瀵硅薄鎵鎷ユ湁锛岄氳繃璇ョ被瀹炰緥鍖栫殑鎵鏈夊璞″叡浜玸tatic淇グ鐨勬垚鍛樺彉閲忥紝static淇グ鐨勬垚鍛樺彉閲忓湪鍐呭瓨涓崰鏈変竴鍧楀浐瀹氱殑鍐呭瓨锛屾墍浠ワ紝浣犲彲浠ュ湪A涓慨鏀箂taitc淇グ鐨勬垚鍛樺彉閲忥紝鍦˙涓彲浠ョ湅鍒颁慨鏀圭殑缁撴灉銆傚鏋滄垚鍛樺彉閲忎笉瀹氫箟涓簊t...
  • java,涓涓寘涓嬮潰鏈2涓被 A 鍜B A绫閲屾湁涓涓唴閮ㄧ被C,璇烽棶C涓殑鐨勫弬鏁版...
    绛旓細鍦ㄧ被A閲岄潰瀹氫箟涓涓叏灞鍙橀噺 result 鐒跺悗鍦–閲岄潰璋冪敤 A.this.result = C.string 杩欐牱 灏变紶閫掑埌A浜銆傘傘傜劧鍚庡湪B閲岄潰 浣犲氨鍙互鐩存帴璋冪敤A銆傜殑鍏ㄥ眬鍙橀噺
  • java鍐涓や釜绫(A,B)瑕佹眰A绫绘湁涓や釜鏋勯犳柟娉,绉佹湁鎴愬憳,鏂规硶銆B绫璋冪敤A绫...
    绛旓細public A(){ System.out.println("System.out.println--璋冪敤鏃犲弬鐨凚鐨勬瀯閫犳柟娉");B b=new B();//濡傛灉闇瑕佽皟鐢˙鐨勬棤鍙傛瀯閫犳柟娉曪紝鍒欎笉鍔犲弬鏁 System.out.println("System.out.println--璋冪敤鏈夊弬鐨凚鐨勬瀯閫犳柟娉");B b2=new B(7);//濡傛灉闇瑕佽皟鐢ㄦ湁鍙傜殑鏋勯犳柟娉曪紝鍒檔ew鐨勬椂鍊欏垯娣诲姞鍙傛暟锛岃皟鐢...
  • 涓涓叧浜java闈欐佹垚鍛樺彉閲忓垵濮嬪寲鐨勯棶棰,鐩墠鏈涓や釜绫,鍒嗗埆鏄疉鍜B銆
    绛旓細A.a锛A.b锛A.c鐨勬椂鍊欏氨宸茬粡鍒濆鍖栦簡锛屽嵆浣夸綘娌℃湁new A锛鑰屽綋浣B绫涓娇鐢ㄥ畬姣曚箣鍚庯紝鍐峮ew A瀵硅薄锛屾暟鍊艰偗瀹氳繕瀛樺湪锛屽洜涓洪潤鎬佸彉閲忔槸鍏ㄥ眬鐨勶紝鑰屼笖鍙湁涓浠斤紝鎵浠ュ璞″叡鐢紝鎵浠ヤ笉闇瑕侀噸鏂板垵濮嬪寲浜嗭紝闈欐佸彉閲忕殑鏀瑰彉鏄▼搴忚繍琛岀殑鏃堕棿鍐呮槸姘镐箙鐢熸晥鐨勩
  • java缁ф壙闂:绫籄缁ф壙绫籅,骞朵笖绫籄鍜绫籅閮芥湁鍚勮嚜鐨勬瀯閫犳柟娉,杩欐椂鍊檔ew...
    绛旓細鎵浠java搴旇鏄拰C#鏄浉閫氱殑銆備互涓嬫槸浠g爜鍜岀粨鏋 class Program { static void Main(string[] args){ ClassB bb = new ClassB();Console.Read();} } class ClassA { public ClassA(){ Console.Write("This is ClassA's constructor\n");} } class ClassB : ClassA { public ClassB()...
  • 鍦Java绋嬪簭鐨勪竴涓寘涓殑涓涓被閲鐢ㄤ簡涓诲嚱鏁,閭d箞鍦ㄥ彟涓涓被涓鍙互鍐嶇敤...
    绛旓細鍙互銆傛瘮濡備綘鐨勭▼搴廡est.java涓湁涓や釜绫锛鍒嗗埆涓篶lass A{} class B{},杩涓や釜绫讳腑閮鍙互鏈塵ain()鍑芥暟锛屽綋浣犵紪璇戝畬鏂囦欢鍚庯紝鍗砵avac Test.java鍚庯紝濡傛灉鎯宠繍琛孉绫讳腑鐨刴ain()鏂规硶灏辩敤java A锛濡傛灉鎯宠繍琛B绫讳腑鐨刴ain()灏辩敤java B 濡傛灉杩樹笉鏄庣櫧灏盚I鎴戝惂 ...
  • 鍦ㄤ竴涓寘涓缓绔嬩簡涓や釜java绫诲垎鍒鏄疉.java鍜B.java,鍖呭悕鏄痓ean,鍦ㄦ瘡涓...
    绛旓細绫绘槸.java?浣犲湪鍚屼竴涓寘涓棤娉曞垱寤哄彟涓涓被鐨勫璞℃槸涓鑸殑灏佽鎬э紝1.浣犵殑B绫鐨勬瀯閫犳柟娉曟病鏈夌┖鐨勬瀯閫犲嚱鏁帮紝浣嗘槸浣犲湪杩欓噷鐢ㄤ簡锛欱();2.鍗曚緥妯″紡涓紝闃叉鍏朵粬绫荤洿鎺ュ垱寤鸿嚜宸辩殑瀵硅薄锛岃嚜宸卞垱寤哄璞★紝閮芥槸灏佽鐨勩3.姝e2锛濡傛灉鏋勯犲嚱鏁版槸绉佹湁鐨勶紝灏变笉鑳界洿鎺ョ敤鏋勯犲嚱鏁癇()鐩存帴鍒涘缓锛屾墍浠ユ壘涓嶅埌绗﹀彿B ...
  • 鐢java缂栫▼瀹氫箟涓や釜绫籄鍜B, 绫籄涓畾涔変竴涓猚har绫诲瀷灞炴(灏嗗叾璧嬪间负...
    绛旓細class A{ private char x = 'A';public void Myprint(){ System.out.println("A[ x=" +x+" ]");} } class B extends A{ private int y = 16;private String s = "java";public void MyPrint(){ System.out.println("B[ y = "+y+" s= "+s+" ]");} public void Print...
  • 鐢java缂栧啓涓涓鏂瑰舰绫,瑕佹眰鏈変竴涓垚鍛樺彉閲廰(绉佹湁 娴偣鍨)涓や釜鏋勯犳柟...
    绛旓細/*java涓锛鏈変袱涓被A鍜孊锛孊绫讳腑鍖呭惈鏈夊弬鏁版瀯閫犳柟娉昩1鍜屾棤鍙傛暟鏂规硶b2锛岄偅鍦ˋ绫讳腑new涓狟绫诲璞″苟璋冪敤鏂规硶b2銆傞偅涔坣ew鐨勬椂鍊欐槸涓嶆槸瑕佸姞鍙傛暟锛熻皟鐢ㄦ柟娉昩2鐨勬椂鍊欐瀯閫犳柟娉曟槸涓嶆槸涔熻皟鐢ㄤ簡锛*/ class A{ public A(){ System.out.println("System.out.println--璋冪敤鏃犲弬鐨凚鐨勬瀯閫犳柟娉");B b=new B...
  • 鍦java涓濡備綍瀹炵幇绫荤殑鐩镐簰浣跨敤,濡傚湪绫籄鐨勬柟娉曚腑浣跨敤绫籅鐨勬柟娉,鍙堝湪绫...
    绛旓細//A绫讳腑浣跨敤B绫鏂规硶public class A{ public static void main(String[] args){ B b = new B(); b.pint(); }}class B{ void pint(){ System.out.println("杩欐槸B绫讳腑鐨刾int()鏂规硶銆"); }}//B绫讳腑浣跨敤A绫荤殑鏂规硶public class B{ public static void main(Str...
  • 扩展阅读:javascript download ... java入门网站 ... zookeeper java api ... java正常javac不对 ... java@override ... nodejs与java交互 ... java serversocket ... j2ee和javaee ... java web和javascript ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网