并发机制 结果应该为: 线程 1: 1 线程 1: 2 线程 1: 3 线程 1: 4 线程 1: 5 线程 2: 6 线程 2: 7

Slides:



Advertisements
Similar presentations
第 12 章 命 名 空 间 (时间: 1 次课, 2 学时)
Advertisements

单元二:面向对象程序设计 任务二:借书卡程序设计.
第三讲 面向对象(上).
3.2 Java的类 Java 类库的概念 语言规则——程序的书写规范 Java语言 类库——已有的有特定功能的Java程序模块
JAVA 编 程 技 术 主编 贾振华 2010年1月.
项目6 通用堆栈.
唐宋词选讲 人人尽说江南好,游人只合江南老。春水碧于天,画船听雨眠。 炉边人似月,皓腕凝霜雪。未老莫还乡,还乡须断肠。
人生的资产负债表.
四資二甲 第三週作業 物件導向程式設計.
102學年度預算編製說明會 主辦單位:會計室 102/02/22.
第一章 面向对象程序设计.
设计模式可以帮助我们改善系统的设计,增强 系统的健壮性、可扩展性,为以后铺平道路。
中国汽车技术研究中心 国家轿车质量监督检验中心
第二章 JAVA语言基础.
第二部分 Java语言基础篇 第4章 Java语言与面向对象 (之一).
類別與物件 Class & Object.
第三章 控制结构.
外观模式.
第9课 北美大陆上的新体制 导入新课 新课教学 课堂小结 知识结构 巩固练习
内容提要 对象的生命周期 构造函数 析构函数 拷贝构造函数. 常宝宝 北京大学计算机科学与技术系
第三次作业.
4.1 概述 4.2 类与对象的实现 4.3 对象的初始化和析构 4.4 类的包含 4.5 类模板
面向对象技术 练习2 ffh.
程序與函數的類別方法 目的:模組化程式設計 方法:由上而下設計 注意事項:(1)獨立性 (2)結合問題 (3)子問題間的溝通.
C#程序设计 c# programming 多线程 C#程序设计课程组.
本單元介紹何謂變數,及說明變數的宣告方式。
西南科技大学网络教育系列课程 高级语程序设计(Java) 第五章 继承、接口与范型.
程式設計實作.
西安交通大学 计算机教学实验中心 大学C++程序设计教程 西安交通大学 计算机教学实验中心
授课老师:龚涛 信息科学与技术学院 2018年3月 教材: 《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
C#程序设计基础 $3 成员、变量和常量.
程序设计期末复习 黎金宁
第9章 多线程 王德俊 上海交通大学继续教育学院.
异常及处理.
Java程序设计 第2章 基本数据类型及操作.
Ch02-基礎語法.
C/C++/Java 哪些值不是头等程序对象
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
$10 可空类型.
第六章 属性、索引器、委托和事件.
简单工厂模式.
辅导课程八.
JAVA 编 程 技 术 主编 贾振华 2010年1月.
C#程序设计基础 $3 成员、变量和常量.
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
第10讲 构造函数和析构函数 构造函数 析构函数 This 指针.
第7章 异常处理.
第二章 Java基本语法 讲师:复凡.
Java程式初體驗大綱 大綱 在學程式之前及本書常用名詞解釋 Hello Java!程式 在Dos下編譯、執行程式
第三章 数据抽象.
<编程达人入门课程> 本节内容 为什么要使用变量? 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ:
第二章 Java语法基础.
第二章 Java基本语法 讲师:复凡.
第二章 类型、对象、运算符和表达式.
Review 1~3.
目标 流程控制 字符串处理 C# 的类和对象 C# 访问修饰符 C# 构造函数和析构函数.
龍老師我不會Debug QQ.
授课老师:龚涛 信息科学与技术学院 2016年3月 教材:《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
#include <iostream.h>
第二章 Java基本语法 讲师:复凡.
C++语言程序设计 C++语言程序设计 第十章 多态 第十一组 C++语言程序设计.
第6單元 6-1 類別的繼承 (Class Inheritance) 6-2 抽象類別 (Abstract Class)
所得稅法第14條、第126條修正條文 薪資所得計算方式二擇一 定額減除 特定費用減除 維持現行薪資所得特別扣除額20萬元減除方式
JAVA 程式設計與資料結構 第三章 物件的設計.
第2章 Java语言基础.
判斷(選擇性敘述) if if else else if 條件運算子.
本节内容 在堆中创建对象 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
第二章 Java基础语法 北京传智播客教育
輸出執行結果到螢幕上 如果要將執行結果的文字和數值都「輸出」到電腦螢幕時,程式要怎麼寫? class 類別名稱 {
第二章 Java基本语法 讲师:复凡.
Presentation transcript:

并发机制 结果应该为: 线程 1: 1 线程 1: 2 线程 1: 3 线程 1: 4 线程 1: 5 线程 2: 6 线程 2: 7 线程 2: 8 线程 2: 9 线程 2: 10 ... 线程 3: 71 线程 3: 72 线程 3: 73 线程 3: 74 线程 3: 75 1、启动 3 个线程打印递增的数字, 线程 1 先打印 1,2,3,4,5, 然后是线程2 打印 6,7,8,9,10, 然后是线程 3 打印 11,12,13,14,15。 接着再由线程 1 打印 16,17,18,19,20....以此类推, 直到打印到 75。 程序的输出如右方所示。 请用多种方法(synchronized、Lock 等)控制 线程,实现输出打印。 给出源代码(对关键代码进行说明)、编译 环境以及执行时间。 总结保证线程安全、同步的方法。

2、对于一个账户类Account,有以下定义 class Account { int balance; synchronized void deposit(float amt) {//存款 balance += amt; } synchronized void withdraw(float amt) {//取款 if(balance < amt) throw new OutOfMoneyError(); balance -= amt; 如果在Account中添加以下方法 void transfer(AccountJ other, float amt) { other.withdraw(amt); this.deposit(amt); 试分析,调用该transfer方法时会出现什么问题,如果为该方法添加关键字 synchronized,调用时是否还有问题?

面向对象编程与基于对象编程 根据javascript的基于对象编程思想实现以下功能并进行比较说明它们的实现机制的异同: public class ClassA { public int a = 1; public static int b = 2; public int c() { return 3; } ClassA obj = new ClassA(); System.out.println(obj.a); //输出:1 System.out.println(obj.b); //输出:2 System.out.println(obj.c()); //输出:3