`
zkgale
  • 浏览: 102087 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

关于java线程的一个问题

阅读更多
最近在写一个程序.其中就遇到了这样一个问题.我希望实现两个或多个线程,而这些线程的顺序是

Thread[Thread-2,5,main]
----a----     <这是线程2调用b时打印出的>
Thread[Thread-3,5,main]
----a----     <这是线程3调用b时打印出的>

上面的顺序是我所希望的...但往往会是这样的结果:
Thread[Thread-2,5,main]
Thread[Thread-3,5,main]
----a----
----a----
因此会使我的程序出现错误.我知道这是因为线程的原因造成的
我只是想看那们前辈有没有什么好的方法,能够解决这样的问题

以下是实例代码

class a
{
    public synchronized void b()
    {
        System.out.println("----a----");
    }
    class c extends Thread
    {
        public void run()
        {
            System.out.println(this);
            b()
        }
    }
}


分享到:
评论
4 楼 Eastsun 2007-06-24  
我的意思是这样的:
class a   
{   
    public void b()   
    {   
        System.out.println("----a----");   
    }   
    class c extends Thread   
    {   
        public void run()   
        {   
            synchronized(a.this){
                System.out.println(this);   
                b();   
            }
        }   
    }   
} 
3 楼 Eastsun 2007-06-24  
zkgale 写道
先谢谢Eastsun哈,我试过这样的方法,但是不行呀...
最后我用了一种最笨的方法
try {
    Thread.sleep(200);
    } catch (InterruptedException e) {
        e.printStackTrace();
	}

虽然这样很有用,但是不知道这对以后会有什么样的影响....



恩,我这个程序是写一个游戏了啦,就是那种弹珠,下面有下横杠那种,我希望能实现的就是可以同时出现多个球运动.....

你试过?你怎么使的?
2 楼 zkgale 2007-06-24  
先谢谢Eastsun哈,我试过这样的方法,但是不行呀...
最后我用了一种最笨的方法
try {
    Thread.sleep(200);
    } catch (InterruptedException e) {
        e.printStackTrace();
	}

虽然这样很有用,但是不知道这对以后会有什么样的影响....



恩,我这个程序是写一个游戏了啦,就是那种弹珠,下面有下横杠那种,我希望能实现的就是可以同时出现多个球运动.....
1 楼 Eastsun 2007-06-24  
把System.out.println(this);  
与b() 的调用 
使用同一个同步锁.

相关推荐

    线程 JAVA java线程 java线程第3版 java线程第2版第3版合集

    电子书相关:包含4个有关JAVA线程的电子书(几乎涵盖全部有关线程的书籍) OReilly.Java.Threads.3rd.Edition.Sep.2004.eBook-DDU Java Thread Programming (Sams) java线程第二版中英文 java线程第二版中英文 ...

    java 线程工具类 java 线程工具类

    java 线程工具类 java 线程工具类java 线程工具类 java 线程工具类java 线程工具类 java 线程工具类java 线程工具类 java 线程工具类java 线程工具类 java 线程工具类java 线程工具类 java 线程工具类java 线程工具...

    java多线程Demo

    Java线程有10个优先级(MIN_PRIORITY, NORM_PRIORITY, MAX_PRIORITY),默认优先级是NORM_PRIORITY。但是,线程优先级并不保证绝对的执行顺序,操作系统调度策略可能影响实际执行顺序。 7. join()方法: 一个线程...

    JAVA单线程多线程

    在Java编程环境中,单线程指的是程序执行过程中只有一个线程在运行。这意味着任何时刻只能执行一个任务,上一个任务完成后才会进行下一个任务。单线程模型简化了程序设计,降低了程序复杂度,使得开发者可以更专注于...

    java线程.pdf

    Java线程是Java编程中非常重要的一个概念,它可以帮助开发者实现多任务并行处理,提高程序的执行效率。理解线程的创建、生命周期管理以及线程间的同步和通信机制对于开发高质量的Java应用至关重要。希望以上内容能够...

    关于线程(java)两天的课件

    Java线程有五种基本状态:新建(New)、可运行(Runnable)、运行(Running)、阻塞(Blocked)和死亡(Terminated)。这些状态之间的转换是通过调用特定的方法,如start()、sleep()、join()、wait()、notify()等...

    Java线程.ppt

    Java线程是Java编程中的重要概念,特别是在多核处理器和并发处理中不可或缺。Java线程允许程序在同一时间执行多个不同的任务,从而提高了程序的效率和响应性。在燕山大学信息学院计算机系的课程中,李峰教授讲解了...

    java 线程 dump 分析工具 2.3.3

    Java的TDA线程转储分析器是一个用于分析Sun Java VM生成的线程转储和堆信息的小型Swing GUI(目前用1.4测试)。它从提供的日志文件中解析线程转储和类直方图。它提供关于发现的线程转储的统计信息,提供关于锁定监视器...

    Java线程详解大全

    Java线程是并发编程的核心部分,它允许程序在同一时间执行多个独立的任务,从而提高系统效率和响应速度。本文将深入探讨Java线程的概念、生命周期、实现方式以及相关的同步机制。 首先,理解线程的基本概念至关重要...

    java线程分析工具TDA

    Java线程分析是Java开发中的重要环节,尤其是在处理性能优化、死锁排查或者并发问题时。TDA(Thread Dump Analyzer)是一款强大的Java线程分析工具,它能够帮助开发者深入理解应用在运行时的线程状态,包括线程的...

    JAVA线程dump的分析

    在实际运行中,往往一次dump的信息,还不足以确认问题,建议产生三次dump信息,如果每次dump都指向同一个问题,我们才确定问题的典型性。 JAVA线程dump分析的步骤包括: 1. 了解线程状态:线程可以是Runnable、...

    Java的多线程(java基础)

    Java的多线程是其编程语言中的一个重要特性,允许在单个程序中同时执行多个任务,从而提高程序的效率和响应性。理解多线程对于Java开发者至关重要,尤其对初学者来说,是掌握高级编程技巧的基础。 首先,我们需要...

    Java线程状态流转图

    Java线程状态流转图是一种用于描述Java线程生命周期中不同的状态和状态转换的图形表示方式。该图形展示了Java线程从创建到终止的整个生命周期,并详细介绍了每种状态的特点和转换规则。 NEW(初始化状态) 在Java...

    java程序 两个线程实现学生成绩的读写

    Java程序中的多线程技术是实现并发操作的关键,尤其在处理并发读写数据时,如在本例中,我们有两条线程分别负责读取和写入学生的成绩...通过学习这个程序,我们可以深入理解Java线程的使用以及并发编程中的核心概念。

    java线程实例 各种小Demo

    Java线程是多任务编程的重要概念,它允许程序同时执行多个独立的任务,从而...在"线程池.rar"和"线程实例"这两个文件中,你可以找到关于这些概念的具体示例代码,通过学习和实践,可以深入理解Java线程的运用和管理。

    Java线程使用教程

    Java线程是Java编程语言中的一个核心概念,它允许程序同时执行多个任务,极大地提高了程序的并发性和效率。本教程将深入探讨Java线程的使用,帮助开发者掌握这一关键技术。 一、线程基础 1. **线程的概念**:线程...

    Java多线程知识点总结

    Java多线程是Java编程语言中一个非常重要的概念,它允许开发者在一个程序中创建多个执行线程并行运行,以提高程序的执行效率和响应速度。在Java中,线程的生命周期包含五个基本状态,分别是新建状态(New)、就绪...

    java线程深入解析

    本文将深入解析Java线程的相关知识点,包括线程的定义、创建、状态管理、线程同步和安全问题。 1. **线程定义** 在Java中,线程是进程中的单一顺序控制流,是程序执行的基本单元。线程在进程的上下文中运行,共享...

    java多线程经典案例

    而线程通信可能体现在当一个线程完成转账后通知另一个线程继续执行的场景。线程阻塞则可能出现在账户余额不足,需要等待外部充值后再继续转账的情况。 通过分析并实践`threadTest`案例,我们可以深入理解Java多线程...

    JAVA线程学习(源代码)

    本资源"JAVA线程学习(源代码)"提供了关于Java线程的源代码示例,帮助我们深入理解和实践线程的使用。 首先,我们要理解Java中的线程模型。Java线程由`java.lang.Thread`类或`java.util.concurrent.Executor`框架来...

Global site tag (gtag.js) - Google Analytics