方法一:利用内部类实现,两个实现加减的类实现Runnable接口,然后再实现4个具体线程。 packagecom.jn.test;publicclassManyThreads{privateintj;privatesynchronizedvoidinc(){ j++; System.out.println(Thread.currentThread().getName()+"-inc:"+j); }privatesynchronizedvoiddec(){ j--; System.out.println(Thread...
这里inc方法和dec方法加synchronized关键字是因为当两个线程同时操作同一个变量时就算是简单的j操作时在系统底层也是通过多条机器语句来实现所以在执行j过程也是要耗费时间这时就有可能在执行j的时候另外一个线程h就会对j进行操作因此另外一个线程h可能操作的可能就不是最新的值了 Java面试题--设计4个线程,其中两个...
因此要提供线程同步。23*/24privatesynchronizedvoidadd()25{26j++;27System.out.println(Thread.currentThread().getName()+":"+j);28}2930privatesynchronizedvoidsub()31{32j--;33System.out.println(Thread.currentThread().getName()+":"+j);34}3536classAddimplementsRunnable37{38publicvoidrun()39{40fo...
1、创建一个共享资源 package com.zkk.thread.testDemo_1;publicclassThreadTestRes {privateInteger j;publicThreadTestRes(Integer j) { super();this.j =j; }publicInteger getJ() {returnj; }publicvoidsetJ(Integer j) {this.j =j; }publicsynchronizedvoidaddJ(){ j++; System.out.println(Thread....
设计4 个线程,其中两个线程每次对 j 增加 1,另外两个线程对 j 每次减少 1。写出程序。 先设计一个类处理加减这一行为: publicclassManyThread {privateintj = 0;publicsynchronizedvoidinc(){ j++; System.out.println(Thread.currentThread().getName()+ "inc" +j);...
注:这里inc方法和dec方法加synchronized关键字是因为当两个线程同时操作同一个变量时,就算是简单的j++操作时,在系统底层也是通过多条机器语句来实现,所以在执行j++过程也是要耗费时间,这时就有可能在执行j++的时候,另外一个线程H就会对j进行操作,因此另外一个线程H可能操作的可能就不是最新的值了。因此要提供线程同...
private int j; //+1 private synchronized void add(){ j++; System.out.println(Thread.currentThread().getName()+"add:"+j); } //-1 private synchronized void sub(){ j--; System.out.println(Thread.currentThread().getName()+"sub:"+j); ...
分析:线程之间要共享变量(j) 代码: 1/**2*3*/4packagebsms.base;56/**7*@authorsunny8*9*/10publicclassBase55 {11privateintj;1213/**14*@paramargs15*/16publicstaticvoidmain(String[] args) {17Base55 t =newBase55();18for(inti = 0; i < 2; i++) {19Runnable at = t.newAdd();20...
设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1 1 package zzg; 2 3 public class ThreadTest { 4 private int j; 5 public static void main(String[] arge){ 6 ThreadTest t1 = new ThreadTest(); 7 Inc inc = t1.new Inc(); 8 Dec dec = t1.new Dec(); 9 for(int ...
题目:设计 4 个线程,其中两个线程每次对 j 增加 1 ,另外两个线程对 j 每次减少 1 。写出程序。 代码实现 publicclassThreadTest{privateintj;classIncimplementsRunnable{ @Overridepublicvoidrun(){// TODO Auto-generated method stubfor(inti=0;i<100;i++) { ...