当前位置:  技术问答>java相关

关于thread类应用的问题

    来源: 互联网  发布时间:2015-05-11

    本文导语:  帮我看看下面的程序,运行不正常,如果把每个同步方法去除同步属性,即去掉synchronized关键字,运行就正常了。能否解释一下synchronized属性的用法;     还有就是如果把doWork()中的System.out.println(count--);换为下面注...

帮我看看下面的程序,运行不正常,如果把每个同步方法去除同步属性,即去掉synchronized关键字,运行就正常了。能否解释一下synchronized属性的用法;
    还有就是如果把doWork()中的System.out.println(count--);换为下面注释中的语句,运行中程序提示出错,是为什么?
//ThreadExample.java        线程类应用的综合实例

class Worker extends Thread
{
  public boolean stopped=false;
  public boolean suspended=false;
  public int count;
  //同步方法,控制线程的终止
  synchronized void safeStop()
  {
    System.out.println("stopped");
    stopped=true;
  }
  //同步方法,控制线程的挂起
  synchronized void safeSuspend()
  {
    System.out.println("Suspended");
    suspended=true;
  }
  //同步方法,控制线程从挂起状态的恢复
  synchronized void safeResume()
  {
    System.out.println("Resumed");
    suspended=false;
  }
  //同步方法,判断标志变量
  synchronized boolean ok()
  {
    return(!stopped);
  }
  //同步方法,线程实际执行的内容
  synchronized void doWork()
  {
    if(!suspended)
    {
      System.out.println(count++);
    }
    else
    {
      while(suspended)
      {
        System.out.println(count--);
        //try
        //{
        //  wait();
        //}
        //catch(InterruptedException e)
        //{
        //}
      }
    }
  }
  //重载线程的run方法
  public void run()
  {
    while(ok())
    {
      doWork();
    }
  }
}

public class ThreadExample
{
  public static void main(String args[])
  {
    //创建线程实例
    Worker worker=new Worker();
    //设置线程的优先级
    worker.setPriority(Thread.currentThread().getPriority()-1);
    try
    {
      //启动线程
      worker.start();
      //利用循环,重复演示线程的启动、运行、挂起、死亡等状态
      for(int i=0;i

    
 
 

您可能感兴趣的文章:

  • 请教关于Thread类执行的问题
  • [求助]请问一下关于Thread的问题
  • 关于GLib Thread Pool的使用问题
  • 有关新建Thread的时间问题?
  • thread的触发问题
  • 关于Thread建立的一个有趣的问题
  • 什么问题:Exception in thread "main" java.lang.NoClassDefFoundError:test(runtime)
  • 初级问题:为什么出现Exception in thread "main" java.lang.NoClassDefFoundError错误?
  • 请教两个关于kernel thread的问题。
  • 问个低级的问题,我编译的时候没问题,可运行时候出现如下提示:Exception in thread "main" java.lang.NoClassDefFoundError: NativeDem
  • 初学者问题:Exception in thread "main" java.lang.NoClassDefFoundError: Welcome
  • linux boost thread编译问题
  • thread的高级问题?想请教内核高手,所以才贴到这儿?
  • (菜鸟飞飞)问个thread的问题
  • Exception in thread "main" java.lang.NoClassDefFoundError: mypag/Time 哪位大哥帮帮小弟,这个问题我搞了一个下午了!!!SOS
  • 常见问题解答: Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld
  • 我刚学Java,用Javac编译一个例程没问题,但一用Java运行就出错:Exception in the thread "main" java.lang.NoClassDefFoundError: Welcome
  • kernel_thread问题,很初级,大家指教。
  • solaris菜鸟求教boost thread问题~~
  • kernel_thread 返回值问题
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间java.lang类thread的类成员方法: thread定义及介绍
  • gcc thread.c -o thread.c -lpthread
  • java命名空间java.lang类thread的类成员方法: max_priority定义及介绍
  • Python中多线程thread与threading的实现方法
  • java命名空间java.lang枚举thread.state的类成员方法: new定义及介绍
  • C#利用System.Threading.Thread.Sleep即时输出信息的详解
  • java命名空间java.lang枚举thread.state的类成员方法: terminated定义及介绍
  • 请问如何在程序中得到 main()Thread 的 Priority ??
  • java命名空间java.lang类thread的类成员方法: getdefaultuncaughtexceptionhandler定义及介绍
  • Java Thread
  • java命名空间java.lang类thread的类成员方法: getstate定义及介绍
  • 急!为什么我没有thread.h文件?
  • java命名空间java.lang枚举thread.state的类成员方法: runnable定义及介绍
  • SCJP模拟题 about Thread
  • java命名空间java.lang枚举thread.state的类成员方法: timed_waiting定义及介绍
  • 有高手研究Agent++麽?里面有个thread.h,蛮难读的,请高手指点
  • java命名空间java.lang枚举thread.state的类成员方法: waiting定义及介绍
  • 用kthread_run创建kernel thread, 能不能限制线程的数目?
  • java命名空间java.lang.management类managementfactory的类成员方法: thread_mxbean_name定义及介绍
  • Exception in thread "main"
  • java命名空间java.lang类thread的类成员方法: run定义及介绍
  • 关于运行JAVA exception in thread "mian"


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3