zoukankan
html css js c++ java
Java 学习之路——线程1
近来学习java的线程的知识。听了听张龙老师讲的课程,感觉受益匪浅。老师的视频很给力,呵呵。
自己练习了一下线程同步的实例:
package com.lcq.ThreadTest; /** * 类名:ThreadText4 * 功能:用于测试多线程的同步问题以及解决方法 * 第一个线程运行后就被加上锁,只有运行完成之后其他线程才能运行 * 用synchronized关键字实现同步 * 时间: * @version 1.0 * @author lcq */ public class ThreadText4 { public static void main(String[] args) { Bank bank = new Bank(); Thread mt1 = new MoneyThread(bank); //bank = new Bank(); Thread mt2 = new MoneyThread(bank); mt1.start(); mt2.start(); } } //创建账户类,用于用户的访问,取钱。 class Bank{ //static 变量是被所有的对象共享的变量 //private static int money = 1000; private int money = 1000; //访问synchronized方法是表示将该对象上锁 public synchronized int getMoney(int number){ //判断用户的钱和要取得钱是否合法 if(number < 0){ return -1; } else if (number > money) { return -2; } else if(money < 0){ return -3; } else{ try { Thread.sleep(1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } money -= number; //打印出剩余的钱数 System.out.println("left money :" + money); return number; } } } //创建取钱线程 class MoneyThread extends Thread { private Bank bank; public MoneyThread(Bank bank){ this.bank = bank; } @Override public void run() { //返回从该账户中取出的钱数 System.out.println("getMoney :" + bank.getMoney(800)); } }
线程刚刚开始,很重要,但是更加重要的还在后边,希望自己会坚持学好。
查看全文
相关阅读:
Jquery中的bind()方法绑定事件总结
composer常用命令
Activity四种启动模式
谷歌搜索技巧
关于Android studio Haxm加速器安装
关于Ping和Tracert命令原理详解
皮尔逊相关系数
head标签
wireshark抓包
数据结构与算法自学系列之动态规划(一)
原文地址:https://www.cnblogs.com/lcqBlogs/p/2392388.html
最新文章
AJAX
搞定.NET MVC IOC控制反转,依赖注入
WebForm获取GET或者POST参数到实体的转换,ADO.NET数据集自动转换实体
.NET MVC4 Razor视图预编译(一)
C# XML转JSON,不引用第三方JSON.NET类库
.NET MVC Razor模板预编译(二)
实现MVC自定义过滤器,自定义Area过滤器,自定义Controller,Action甚至是ViewData过滤器
Install Android Studio in debian Wheezy
Install ADT in debian Wheezy
js事件冒泡和事件委托
热门文章
理解css 中的position五个属性
JS原型与原型链终极详解(转)
centos 7下配置mysql+php(ThinkPHP)+nginx
利用 css 制作简单的提示框
html元素类型 块级元素、内联元素(又叫行内元素)和内联块级元素。
利用css3动画和border来实现圆形进度条
react学习
正则表达式验证邮箱
trigger()方法触发指定类型事件
在ubuntu上安装phpstrom
Copyright © 2011-2022 走看看