- 浏览: 77424 次
- 性别:
- 来自: 深圳
文章分类
最新评论
/* 需求:简单的买票程序 多个窗口卖票 */ class TWindow extends Thread{ private static int tickNum = 100;//此处若不加static,则每个对象都可以售100张票,但是加static,tickNum的生命周期就很长 public void run(){ while(true){ if(tickNum >0){ System.out.println(Thread.currentThread().getName()" sale: "+ tickNum--); } } } } class Ticket{ public static void main(String[] args){ TWindow t1 = new TWindow(); TWindow t2 = new TWindow(); TWindow t3 = new TWindow(); TWindow t4 = new TWindow(); t1.start(); t2.start(); t3.start(); t4.start(); } }
class TWindow extends Thread{ private int tickNum = 100;//此处若不加static,只创建一个线程,四次开启运行线程 //会出现错误。可以用运动员跑步,start()为司令官发枪。第一次发枪,运动员跑出去了,第二次发枪,第三次发枪,第四次发枪。后面的发枪没意义。 //会提示线程状态出问题了。 public void run(){ while(true){ if(tickNum >0){ System.out.println(Thread.currentThread().getName()" sale: "+ tickNum--); } } } } class Ticket{ public static void main(String[] args){ TWindow t1 = new TWindow(); //TWindow t2 = new TWindow(); //TWindow t3 = new TWindow(); //TWindow t4 = new TWindow(); t1.start(); t1.start(); t1.start(); t1.start(); } }
解决方法:通过另一种创建线程的方式。
发表评论
-
151多线程(优先级&yield方法)
2015-10-28 11:16 694/* 养成习惯:数据共享用静态 */ class Dem ... -
150_多线程(Join方法)
2015-10-27 18:31 610/* join: 当A线程执行到了B线程的join方法 ... -
114_面向对象(多异常处理)_黑马程序员_Java基础视频
2015-10-25 23:27 695/* 对多异常的处理 1.生命异常时,建议声明更为具体的异 ... -
113_面向对象(异常声明throws)_黑马程序员_Java基础视频
2015-10-25 23:26 481/* 异常:就是程序在运行时出现不正常情况 异常由来:问题 ... -
112_面向对象(异常try-catch)
2015-10-25 23:25 733/* 异常:就是程序在运行时出现不正常情况 异常由来:问题 ... -
148_多线程(停止线程)
2015-10-25 23:16 581/* stop方法已经过时。 如何停止线程? 只有一 ... -
147_多线程(线程间通信-生产者消费者JDK5.0升级版)
2015-10-21 23:33 751/*JDK1.5及以上提供了多线程升级解决方案。 将同步Sy ... -
146_多线程(线程间通信-生产者消费者)
2015-10-20 23:35 627一个生产者一个消费者 ... -
144_多线程(线程间通信-等待唤醒机制)
2015-10-20 18:35 721class Res{ String name; Str ... -
142_多线程-线程间通信
2015-10-20 16:18 703/* 线程间通讯: 其实就是多线程在操作同一个资源。 但 ... -
141多线程-死锁
2015-10-20 14:45 694/* 死锁: 同步中嵌套同步 */ class T ... -
140_多线程(多线程-单例设计模式-懒汉式)
2015-10-19 11:45 689/* 单例设计模式 饿汉式 class Single ... -
138_多线程(多线程-同步函数的锁是this)
2015-10-15 14:48 848/* 同步函数用的是哪一个锁呢? 函数需要被对象调用。那么 ... -
137_多线程(多线程-同步函数)
2015-10-13 23:25 599/* 需求:银行有一个金库。 有两个储户分别存300元 ... -
135_多线程(多线程的安全问题)
2015-10-13 18:07 610class TWindow implements Runnab ... -
多线程(创建线程-实现Runnable接口)
2015-10-10 00:19 555class TWindow implements Runnab ... -
132_多线程(获取线程对象以及名称)
2015-10-09 23:30 1218/* 练习:创建两个线程,和主线程交替运行 线程都有自 ... -
多线程-继承Thread类
2015-10-09 00:26 1562/* 进程:是一个正在执行中的程序 每一个进程执行都有一个 ... -
包的应用
2015-10-08 23:28 1665package pack; class PackageD ... -
异常总结
2015-10-05 20:07 575异常是什么? 是对问题的描述,将问题进行对象的封装。 ...
相关推荐
通过在Linux上使用C语言和pthread库,我们可以创建并管理多线程程序,有效地处理并发操作,如模拟售票过程。在实践中,确保线程安全是关键,这通常需要对共享资源进行适当的同步,如使用互斥锁。
### 火车票售票系统创建多线程 在计算机科学领域中,多线程技术被广泛应用于提高软件系统的响应速度、并发处理能力和资源利用率。本文将基于给定的代码片段,详细介绍如何在一个简单的火车票售票系统中实现多线程。...
另外,`javaee.jar`文件可能是Java企业版(Java EE)的库,其中包含了支持多线程和并发处理的API,如Servlet和EJB。在实际的Web应用中,服务器端的多线程处理对于处理来自多个用户的请求至关重要。例如,每个HTTP...
在这个售票系统中,我们可能会使用多线程,因为每个售票终端可以视为一个独立的执行线程。 C++中实现并发编程通常使用以下技术: 1. **线程**:C++11及更高版本提供了`<thread>`库,允许创建和管理线程。例如,...
例如,在电影院售票的例子中,如果没有同步机制,可能出现票号重复或者负数的情况。 【线程同步】 线程同步是解决线程安全问题的一种手段,它确保在任何时刻只有一个线程可以执行特定的代码块。Java提供了两种主要...
在Java编程中,多线程是并发编程的重要组成部分,它允许多个任务同时执行,从而提高应用程序的效率和响应速度。然而,多线程环境下的数据共享和操作可能会引发线程安全问题,如果不正确处理,可能导致数据不一致、...
在计算机系统中,多线程编程是常见的并发执行方式,特别是在服务器端和高并发应用中。线程同步是多线程编程中一个重要的概念,它确保了多个线程在访问共享资源时能按照一定的顺序或者规则进行,防止数据的不一致性和...
在我们的例子中,"4窗口同时买票"就是一种多线程的体现,每个售票窗口可以看作一个独立运行的线程,它们可以同时为不同的客户办理购票业务,提高工作效率。 多线程在实际应用中有着广泛的应用,例如在服务器端处理...
Java多线程之火车售票系统模拟实例 本文将从Java多线程之火车售票系统模拟实例中提取相关知识点,以便读者更好地理解Java多线程编程的基本概念和应用。 1. 多线程编程 Java多线程编程是指在一个Java程序中同时...
在这个多线程的例子中,我们模拟了一个售票系统的场景。系统中有一个全局变量表示票的数量,多个线程代表不同的售票员,他们同时尝试出售这些票。这就涉及到线程间的共享数据和同步问题。 3. **线程安全与竞态条件...
在这个"多线程实例,可创建任意多线程"的示例中,我们将深入探讨如何在编程环境中实现多线程,并通过一个类比卖火车票的流程来理解其工作原理。 首先,我们要明白什么是线程。线程是程序执行的最小单元,每个线程都...
在售票示例中,对比了使用`Thread`类和实现`Runnable`接口的多线程卖票程序。当使用`Thread`类时,每个线程都有自己的售票对象,可能会导致卖出超过实际票数的问题。而使用`Runnable`接口,所有线程共享同一个售票...
比如在一个售票的例子中,如果没有同步控制,可能导致卖出负数或重复的票。这种问题称为竞态条件。为了解决这个问题,Java提供了synchronized关键字来实现同步代码块,确保同一时间只有一个线程能够执行特定的代码段...
在Java编程中,多线程是并发处理任务的关键机制,允许程序同时执行多个独立的代码段。本示例“线程的动态停止:一个很经典的多线程麦票程序”探讨了如何在运行时控制线程的执行和停止,这对于理解和优化多线程应用...
在Swift编程语言中,NSThread是Apple的Foundation框架提供的一种多线程解决方案,它允许开发者在后台执行耗时任务,从而提高应用的响应速度。在这个"swift NSThread线程同步买票小例子"中,我们将深入理解如何使用...
### 多线程示例分析 #### 一、概述 本篇文章将基于提供的代码示例,深入探讨Windows环境下多线程编程的基本概念和技术要点。该示例通过两个线程(`Fun1Proc` 和 `Fun2Proc`)来模拟票务系统中的售票过程,旨在帮助...
在这个例子中,我们看到一个简单的Java多线程程序,用于模拟售票系统,其中有两个类`SellThread`和`AddThread`分别代表售票和加票的操作。 首先,我们来理解一下`SellThread`类。这个类实现了`Runnable`接口,这...
Java多线程-线程的安全问题与线程的同步机制介绍 在 Java 多线程编程中,线程安全问题是非常重要的一个话题。当多个线程访问同一个资源时,如果只有读操作那么不会出现线程安全问题,但是如果多个线程对资源进行读...
Java多线程同步是编程中一个非常重要的概念,特别是在并发编程和高并发系统设计中起到关键作用。在Java中,为了保证线程安全,避免数据竞争和不一致的状态,我们通常会使用同步机制来控制对共享资源的访问。本文将...