摘要: 1.start() 启动 2.isAlive() 是否活动这,只有在start之后,在run方法走完之后,是true 3.state() 线程状态 4.getPriority() 获取线程优先级,默认是5,线程默认优先级为5,如果不手动指定,那么线程优先级具有继承性,比如线程A启动线程B,那么线程B 阅读全文
posted @ 2018-04-12 17:44 tangw 阅读(277) 评论(0) 推荐(0) 编辑
摘要: 有2个方式 1.继承Thread,第2实现Runnable接口,但是我们建议用实现接口的方式,因为继承只能单继承,实现可以实现多个接口。 下面的是启动线程的例子。 线程状态: 1.新建状态NEW : 就是线程被new出来,还没有start 2.可运行状态RUNNABLE 线程已经start了,但是没 阅读全文
posted @ 2018-04-12 16:00 tangw 阅读(134) 评论(0) 推荐(0) 编辑
摘要: Vector 他的实现原理和ArrayList,只不过在增删查改的时候,加了锁标记。 Vector 不是绝对的线程安全。 比如线程有现在A和B,同时add的话,因为add方法加了锁标记synchronized,所以如果A先拿到了这个锁,这个锁就是这个对象的实例,然后B必须要等待,等A释放锁之后,会去 阅读全文
posted @ 2018-04-12 14:34 tangw 阅读(4661) 评论(0) 推荐(1) 编辑
摘要: ashMap的存储接口是底层有1个Node<K,V>[] table数组,然后根据key的hash值找到定位的下标,然后存到数组里面。如何key的hash值是一样的,但是value不一样的话,他添加的节点就是Node链表的下一个节点。 所以hashMap 查询和删除比较快,他直接根据key找到has 阅读全文
posted @ 2018-04-12 11:17 tangw 阅读(149) 评论(0) 推荐(0) 编辑