随笔分类 -  java

摘要:生产/消费者问题是个非常典型的多线程问题,涉及到的对象包括“生产者”、“消费者”、“仓库”和“产品”。他们之间的关系如下: ① 生产者仅仅在仓储未满时候生产,仓满则停止生产。 ② 消费者仅仅在仓储有产品时候才能消费,仓空则等待。 ③ 当消费者发现仓库没产品可消费时候会通知生产者生产。 ④ 生产者在生 阅读全文
posted @ 2017-09-07 10:45 申小贺 阅读(187) 评论(0) 推荐(0)
摘要:在多个线程之间共享了Count类的一个对象,这个对象是被创建在主内存(堆内存)中,每个线程都有自己的工作内存(线程栈),工作内存存储了主内存Count对象的一个副本,当线程操作Count对象时,首先从主内存复制Count对象到工作内存中,然后执行代码count.count(),改变了num值,最后用 阅读全文
posted @ 2017-09-07 10:42 申小贺 阅读(701) 评论(0) 推荐(0)
摘要:进程和线程区别 进程间的通信方式 阅读全文
posted @ 2017-09-07 10:23 申小贺 阅读(160) 评论(0) 推荐(0)
摘要:CPU是负责运算和处理的,内存是交换数据的。 当程序或者操作者对CPU发出指令,这些指令和数据暂存在内存里,在CPU空闲时传送给CPU,CPU处理后把结果输出到输出设备上,输出设备就是显示器,打印机等。在没有显示完之前,这些数据也保存在内存里,如果内存不足,那么系统自动从硬盘上划分一部分空间作为虚拟 阅读全文
posted @ 2017-09-07 09:58 申小贺 阅读(352) 评论(0) 推荐(0)
摘要:输出为:100 50 50. 首先,方法中改变了对象的值,所以age为50,然后创建了一个新的对象,新的对象的指针放在了emp里。这时的emp和传递过来的emp所指向的地址不同了。最后设置age为100,是对新建的Emp对象的设置。也就是说,后来新建的emp相当于change方法中的私有变量,作用域 阅读全文
posted @ 2017-09-06 16:09 申小贺 阅读(211) 评论(0) 推荐(0)
摘要:实现方式:线程的实现方式有两种。一种是通过继承Thread类,并重写run()方法实现;另一种是通过实现Runnable接口并实现其run()方法。 1、通过继承Thread类 控制台输出结果: 在这里我们可以看到两个线程会交叉执行,并不是一个先执行完后,另一个再执行。这就是说当线程启动后我们是不能 阅读全文
posted @ 2017-09-06 12:14 申小贺 阅读(236) 评论(0) 推荐(0)
摘要:request.getParameter() 和request.getAttribute() 区别 request.getParameter() 和request.getAttribute() 区别 getParameter 是用来接受用post个get方法传递过来的参数的.getAttribute 阅读全文
posted @ 2017-03-15 15:24 申小贺 阅读(665) 评论(0) 推荐(0)