上一页 1 ··· 6 7 8 9 10 11 12 13 14 下一页
摘要: Output: Thread-0..if locka.... Thread-1..else lockb.... Thread-0..if locka.... Thread-1..else lockb.... 阅读全文
posted @ 2018-01-18 10:47 darrell007 阅读(142) 评论(0) 推荐(0)
摘要: 一种更好的单例实现方法 饿汉式单例类不能实现延迟加载,不管将来用不用始终占据内存;懒汉式单例类线程安全控制烦琐,而且性能受影响。可见,无论是饿汉式单例还是懒汉式单例都存在这样那样的问题,有没有一种方法,能够将两种单例的缺点都克服,而将两者的优点合二为一呢?答案是:Yes!下面我们来学习这种更好的被称 阅读全文
posted @ 2018-01-18 10:46 darrell007 阅读(298) 评论(0) 推荐(0)
摘要: 线程安全问题产生原因: 1、多个线程操作共享的数据; 2、操作共享数据的线程代码有多条。 当一个线程正在执行操作共享数据的多条代码过程中,其它线程也参与了运算, 就会导致线程安全问题的发生。 class Ticket extends Thread { private int num = 100; p 阅读全文
posted @ 2018-01-18 10:43 darrell007 阅读(158) 评论(0) 推荐(0)
摘要: 1. 线程状态类型 1. 新建状态(New):新创建了一个线程对象。2. 就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于可运行线程池中,变得可运行,等待获取CPU的使用权。3. 运行状态(Running):就绪状态的线程获取了CPU,执行程序 阅读全文
posted @ 2018-01-18 10:38 darrell007 阅读(180) 评论(0) 推荐(0)
摘要: ava中如何创建线程? 创建线程的方式一:继承Thread类 步骤: 1、定义一个继承于Thread的类; 2、覆盖Thread类中的run方法; 3、直接创建Thread类的子类对象创建线程; 4、调用start方法开启线程。 创建线程的第二种方式:实现Runnable接口 1,定义类实现Runn 阅读全文
posted @ 2018-01-18 10:34 darrell007 阅读(149) 评论(0) 推荐(0)
摘要: 假如说你想复制一个简单变量。很简单: int apples = 5; int pears = apples; 不仅仅是int类型,其它七种原始数据类型(boolean,char,byte,short,float,double.long)同样适用于该类情况。 但是如果你复制的是一个对象,情况就有些复杂 阅读全文
posted @ 2018-01-18 10:31 darrell007 阅读(413) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2018-01-18 10:26 darrell007 阅读(87) 评论(0) 推荐(0)
摘要: 什么是进程?当一个程序开始运行时,它就是一个进程,进程包括运行中的程序和程序所使用到的内存和系统资源。而一个进程又是由多个线程所组成的。什么是线程?线程是程序中的一个执行流,每个线程都有自己的专有寄存器(栈指针、程序计数器等),但代码区是共享的,即不同的线程可以执行同样的函数。什么是多线程?多线程是 阅读全文
posted @ 2018-01-18 10:24 darrell007 阅读(156) 评论(0) 推荐(0)
摘要: Output: 除数不能为0 finally 除数不能为0 finally 最终结论 任何执行try 或者catch中的return语句之前,都会先执行finally语句,如果finally存在的话。如果finally中有return语句,那么程序就return了,所以finally中的return 阅读全文
posted @ 2018-01-18 10:22 darrell007 阅读(134) 评论(0) 推荐(0)
摘要: 1. 引子 1. 引子 try…catch…finally恐怕是大家再熟悉不过的语句了,而且感觉用起来也是很简单,逻辑上似乎也是很容易理解。不过,我亲自体验的“教训”告诉我,这个东西可不是想象中的那么简单、听话。不信?那你看看下面的代码,“猜猜”它执行后的结果会是什么?不要往后看答案、也不许执行代码 阅读全文
posted @ 2018-01-18 10:16 darrell007 阅读(141) 评论(0) 推荐(0)
上一页 1 ··· 6 7 8 9 10 11 12 13 14 下一页