摘要: 一. 不同的包有很多,不同包之间的类该如何访问呢?之前没有包的时候都是默认包,当前这个目录就是默认包,它们都在同一个包里进行互相访问(不同类之间的访问,调用)。现在看不同包里类与类之间的访问又是怎样的? 上一节的自动生成的包中,包名的确定是根据程序中自己书写的名字,来确定的。比如下图这样的,写成pa 阅读全文
posted @ 2017-12-13 17:25 前锋营 阅读(660) 评论(0) 推荐(0) 编辑
摘要: 一. 包的知识点是面向对象最后的知识点。 (都是对类的操作,那java源文件呢?) 什么是包?包有什么用? 介绍一下起源,同一个文件夹里面有两个.java的源程序。它们里面各自有一个class Demo类,在源文件编译的时候,分别会产生Demo类。但由于在同一个文件夹,因此只出现了一个Demo类。为 阅读全文
posted @ 2017-12-13 17:12 前锋营 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 一. 现在用一个示例,将刚才所讲的同步内容练习一下。 对于一个函数中,存在多个线程,如果出现安全隐患,这隐患是在哪儿?以及如何通过同步函数来解决。(相当于一个实操) 存一百,存三次是共同的,两个人执行的是同样的动作。 线程开启之前,要先有任务。这个任务要么叫爹覆盖我的方法,要么实现Runable把你 阅读全文
posted @ 2017-12-13 16:43 前锋营 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 一. 日后开发的时候,看到这样一种现象:看到了数据的错误是线程安全问题引发的,紧跟着就采取了同步措施,没想到安全问题依然存在。 这种情况很痛苦,因为这时已经没有解决方案了。 看到问题,以为同步就能解决问题,没想到解决不了。(是否说安全问题,正确地使用同步都可以解决?) 这种问题是怎么造成的呢?这里必 阅读全文
posted @ 2017-12-13 15:01 前锋营 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 一. 同步的原因 synchronized的代码块的封装作用,我们已经认识到了。但是它到底是怎么起到作用,现在来讨论一下。 这里面有一个对象,我们先简单地将它理解为标志位。这标志位怎么用的呢? 现在假想标志位有0和1,如果先来的默认值是1。这时,来了四个不同编号的线程,0~3。 0线程进来后,syn 阅读全文
posted @ 2017-12-13 14:38 前锋营 阅读(313) 评论(0) 推荐(0) 编辑
摘要: 一. 怎么解决程序的安全性问题。 就相当于不给其他线程机会,自己独占。 对于多条语句的封装通常用什么封装?花括号,也就是代码块。 我们现在需要这个代码块具备一定的功能,多个线程只能每次有一个线程进来操作。这个我们也可以用一个关键字来标识。 synchronized是同步的意思, 写同步代码块的时候, 阅读全文
posted @ 2017-12-13 11:02 前锋营 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 一. 对原因进行分析一下,为什么之前没事,现在就有事。 在栈的里面,我们就不画主线程了,有四条线程路径,有自己的run方法。而这run方法如果里面写for循环,写上x的话,每个线程都有一份。 冲突吧?不冲突,都使用自己的,而当我们去卖票的时候,在运行堆里面的这个num,这个num就是多个线程所共享的 阅读全文
posted @ 2017-12-13 10:34 前锋营 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 一. 引言 接着看,把售票的问题给说完,这里涉及到一个小问题。 在我们进行线程任务封装,并进行线程对象创建的时候,我们发现确实通过四个线程能够将一百张票卖完。但是卖票的时候,会不会出现一些小问题呢?分析整个程序给大家展示一下。 现在有四个线程,都到了run方法中来运行。大家都知道,每个线程所属的栈区 阅读全文
posted @ 2017-12-13 10:04 前锋营 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 一. 需求:简单卖票程序。 怎么卖:多个窗口卖票。 一号窗口在卖票的时候,二号窗口,三号窗口也在卖票,这是同时在操作。也就是多线程。 Ticket类中的卖票代码必须要被多个线程所执行。 需求是卖票,那么名词就是票,对票进行类的描述,怎么卖票自己知道。因此,Ticket类里面必须要定义卖的方法。 由于 阅读全文
posted @ 2017-12-13 08:51 前锋营 阅读(230) 评论(0) 推荐(0) 编辑