设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。

设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。

Thread类

public Thread() 创建线程对象

public Thread(Runnable target)//target 称为被创建线程的目标对象,负责实现Runnable接口

Thread类有三个有关线程优先级的静态常量:MIN_PRIORITY,MAX_PRIORITY,NORM_PRIORITY

新建线程将继承创建它的副相承的优先级,用户可以调用Thread类的setPriority(int a)来修改

a的取值: Thread.MIN_PRIORITY,Thread.MAX_PRIORITY,Thread.NORM_PRIORITY

主要方法

启动线程 void start()

定义线程操作 void run()

使线程休眠 static void sleep()

sleep(int millsecond) 以毫秒为单位的休眠时间

sleep(int millsecond,int nanosecond) 以纳秒为单位的休眠时间

currentThread() 判断谁在占用CPU的线程

final String getName()    获取线程名

final int getPriority()       获取线程优先级

final void setPriority(int level)   设置线程优先级

final boolean isAlive()      确定线程是否运行

final   void join()              等待线程终止

以下程序使用内部类实现线程,对j增减的时候没有考虑顺序问题。

public class ThreadTest1{

  private int j;

  public static void main(String args[]){

ThreadTest1 tt=new ThreadTest1();

Inc inc=tt.new Inc();

Dec dec=tt.new Dec();

for(int i=0;i<2;i++){

Thread t=new Thread(inc);

t.start();

t=new Thread(dec);

t.start();

}

}

private synchronized void inc(){

j++;

System.out.println(Thread.currentThread().getName()+"-inc:"+j);

  }

private synchronized void dec(){

j--;

System.out.println(Thread.currentThread().getName()+"-dec:"+j);

  }

class Inc implements Runnable{

public void run(){

for(int i=0;i<100;i++){

inc();

}

}

  }

class Dec implements Runnable{

public void run(){

for(int i=0;i<100;i++){

dec();

}

 }

  }

}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值