iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >java多线程怎么实现取款小程序
  • 563
分享到

java多线程怎么实现取款小程序

2023-06-30 15:06:30 563人浏览 泡泡鱼
摘要

今天小编给大家分享一下java多线程怎么实现取款小程序的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1、建立java类这里建

今天小编给大家分享一下java多线程怎么实现取款小程序的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

1、建立java类

java多线程怎么实现取款小程序

这里建立了三个java类,第一个Account类,用于封装账户中的各种信息;第三个DrawThread类用于实现线程体;第二个类主要封装了主函数

2、Account类

public class Account {    //封装账户编号,账户余额和两个成员变量    private String accountNo;    private double balance;    public Account(){};    public Account(String accountNo,double balance){        this.accountNo=accountNo;        this.balance=balance;    }    public void setAccountNo(String accountNo)    {        this.accountNo=accountNo;    }    public void setBalance(double balance){        this.balance=balance;    }    public String getAccountNo(){        return accountNo;    }    public double getBalance(){        return balance;    }    public int hashCode(){        return accountNo.hashCode();    }    public boolean equals(Object obj){        if(this==obj){            return true;        }        if (obj!=null&&obj.getClass()==Account.class){            Account target=(Account)obj;            return target.getAccountNo().equals(accountNo);        }        return false;    }}

3、DrawThread类

public class DrawThread extends Thread {    //模拟用户账户    private Account account;    //当前取钱线程所希望的取钱数    private double drawAmount;    public DrawThread(String name, Account account, double drawAmount) {        super(name);        this.account = account;        this.drawAmount = drawAmount;    }    //当多个线程修改同一个共享数据时,将涉及数据安全问题    public void run() {        //使用account作为同步监视器,任何线程进入下面同步代码块之前        //必须先获得对account账户的定——其他线程无法获得锁,也就无法修改它        synchronized (account) {            if (account.getBalance() >= drawAmount) {                //吐出钞票                System.out.println(getName() + "取钱成功!吐出钞票:" + drawAmount);                        //修改余额                account.setBalance(account.getBalance() - drawAmount);                System.out.println("\t余额为:" + account.getBalance());            } else {                System.out.println(getName() + "取钱失败!余额不足!");            }        }    }}

4、DrawTest类

public class DrawTest {    public static void main(String[] args){        //创建一个账户        Account acct=new Account("1234567",1000);        //模拟两个线程对同一个账户取钱        new DrawThread("jack",acct,800).start();        new DrawThread("rose",acct,800).start();    }}

运行结果:

java多线程怎么实现取款小程序

以上程序有一点需要注意,就是用到了同步代码块。它可以解决run()方法不具备同步安全性(即当两个线程同时发送请求时即会造成异常)

同步代码块:

synchronized (obj){//需要执行的代码}

如果我们去掉run()方法中的同步代码块,继续运行

Account acct=new Account("1234567",1000);new DrawThread("jack",acct,800).start();new DrawThread("rose",acct,800).start();

(银行账户一共1000元,Jack和rose分别对同一账户取钱)

运行结果:

java多线程怎么实现取款小程序

以上就是“java多线程怎么实现取款小程序”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网精选频道。

--结束END--

本文标题: java多线程怎么实现取款小程序

本文链接: https://www.lsjlt.com/news/329763.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • java多线程怎么实现取款小程序
    今天小编给大家分享一下java多线程怎么实现取款小程序的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1、建立java类这里建...
    99+
    2023-06-30
  • java多线程实现取款小程序
    最近java学到了多线程编程中的线程同步问题,教材中的取款小程序对于理解线程和线程同步很有帮助,在此将其补充完善. 1、建立java类 这里建立了三个java类,第一个Accoun...
    99+
    2024-04-02
  • C++ SOCKET多线程怎么实现聊天小程序
    本篇内容介绍了“C++ SOCKET多线程怎么实现聊天小程序”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!TCP/IP协议与SOCKET什么...
    99+
    2023-06-08
  • Java中怎么实现一个多线程程序
    Java中怎么实现一个多线程程序,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Java多线程程序设计详细解析一、理解Java多线程Java多线程是这样一种机制,它允许在程序中并...
    99+
    2023-06-17
  • Java—实现多线程程序 | 入门
      目录 一、前言 二、基本概念 进程  线程 三、Java多线程实现 java.lang.Thread类 获取线程名字及对象 获取main进程名 Thread currentThread() 四、线程优先级  设置优先级  一、前言 前...
    99+
    2023-09-07
    java 开发语言 Java多线程程序 多线程 Thread类
  • 怎么在Java中实现多线程排序
    这期内容当中小编将会给大家带来有关怎么在Java中实现多线程排序,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。java基本数据类型有哪些Java的基本数据类型分为:1、整数类型,用来表示整数的数据类型。2...
    99+
    2023-06-14
  • C++ SOCKET多线程实现聊天小程序
    本文实例为大家分享了C++ SOCKET多线程实现聊天小程序的具体代码,供大家参考,具体内容如下 TCP/IP协议与SOCKET 什么是网络协议? 计算机网络中,各个实体之间的数据交...
    99+
    2024-04-02
  • python多线程及多线程有序性怎么实现
    这篇文章主要介绍了python多线程及多线程有序性怎么实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇python多线程及多线程有序性怎么实现文章都会有所收获,下面我们一起来看看吧。前言多线程一般用于同时调用...
    99+
    2023-07-02
  • java怎么实现多线程的顺序执行
    这篇文章主要介绍java怎么实现多线程的顺序执行,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!场景编写一个程序,启动三个线程,三个线程的name分别是A,B,C;,每个线程将自己的ID值在屏幕上打印5遍,打印顺序是A...
    99+
    2023-06-15
  • Java中多线程怎么实现
    这篇文章主要讲解了“Java中多线程怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java中多线程怎么实现”吧!线程是一些可以并行的,独立的执行的代码.之前我编的程序都只能做一件事情...
    99+
    2023-06-03
  • Java怎么调试多线程的程序
    调试多线程程序可以使用以下方法: 使用断点:在代码中设置断点,当程序执行到断点时会暂停,可以查看当前线程的状态、变量的值等信息。...
    99+
    2024-02-29
    Java
  • C++ SOCKET多线程实现聊天小程序的方法
    本篇内容主要讲解“C++ SOCKET多线程实现聊天小程序的方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++ SOCKET多线程实现聊天小程序的方法”吧!本文实例为大家分享了C++ SO...
    99+
    2023-06-20
  • Java中怎样实现多线程编程
    今天就跟大家聊聊有关Java中怎样实现多线程编程,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一、理解Java多线程编程Java多线程编程是这样一种机制,它允许在程序中并发执行多个指...
    99+
    2023-06-17
  • 多线程python的实现及多线程有序性
    目录前言一、多线程运行无序问题二、“join方法”解决多线程运行无序问题三、threading.Thread()的常用参数总结前言 多线程一般用于同时调用多个...
    99+
    2024-04-02
  • python怎么实现多线程并发抓取
    这篇文章主要为大家展示了“python怎么实现多线程并发抓取”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“python怎么实现多线程并发抓取”这篇文章吧。多线程并发抓取单线程太慢的话,就需要多线...
    99+
    2023-06-26
  • spark多线程读取文件怎么实现
    在Spark中,可以通过以下步骤来实现多线程读取文件: 创建SparkSession对象: val spark = SparkS...
    99+
    2024-04-02
  • 怎么解析Java多线程程序设计
    小编今天带大家了解怎么解析Java多线程程序设计,文中知识点介绍的非常详细。觉得有帮助的朋友可以跟着小编一起浏览文章的内容,希望能够帮助更多想解决这个问题的朋友找到问题的答案,下面跟着小编一起深入学习“怎么解析Java多线程程序设计”的知识...
    99+
    2023-06-03
  • Java中怎么实现多线程递归
    这篇文章将为大家详细讲解有关Java中怎么实现多线程递归,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。public<T> voidParallelRecursive(f...
    99+
    2023-06-17
  • Java中怎么实现多线程通信
    Java中怎么实现多线程通信,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。概述多线程通信问题,也就是生产者与消费者问题生产者和消费者为两个线程,两个线程在运行过程中交替睡眠,生...
    99+
    2023-06-20
  • 怎么实现JAVA 多线程的浅析
    这期内容当中小编将会给大家带来有关怎么实现JAVA 多线程的浅析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。JAVA 的多线程浅析一、JAVA 语言的来源、及特点在这个高速信息的时代,商家们纷纷把信息、...
    99+
    2023-06-03
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作