java基础day14

  • 线程通讯: 一个线程完成了自己的任务时,要通知另外一个线程去完成另外一个任务.

wait(): 等待 如果线程执行了wait方法,那么该线程会进入等待的状态,等待状态下的线程必须要被其他线程调用notify方法才能唤醒。
notify(): 唤醒 唤醒线程池等待线程其中的一个。
notifyAll() : 唤醒线程池所有等待 线程。

wait与notify方法要注意的事项:
1. wait方法与notify方法是属于Object对象 的。
2. wait方法与notify方法必须要在同步代码块或者是同步函数中才能 使用。
3. wait方法与notify方法必需要由锁对象调用。

  • 线程的停止:
    1. 停止一个线程 我们一般都会通过一个变量去控制的。
    2. 如果需要停止一个处于等待状态下的线程,那么我们需要通过变量配合notify方法或者interrupt()来使用。

interrupt:把线程的等待状态强制清除,被清除状态的线程会接收到一个InterruptedException。

  • 守护线程(后台线程):在一个进程中如果只剩下 了守护线程,那么守护线程也会死亡。

setDaemon() 设置线程是否为守护线程,true为守护线程, false为非守护线程。

d.isDaemon()判断线程是否为守护线程。

  • join()加入。 一个线程如果执行join语句,那么就有新的线程加入,执行该语句的线程必须要让步给新加入的线程先完成任务,然后才能继续执行。

集合:集合是存储对象数据的集合容器。

集合比数组的优势:
1. 集合可以存储任意类型的对象数据,数组只能存储同一种数据类型 的数据。
2. 集合的长度是会发生变化的,数组的长度是固定的。

-------| Collection 单例集合的跟接口。
----------| List 如果是实现了List接口的集合类,具备的特点: 有序,可重复。
----------| Set 如果是实现了Set接口的集合类,具备特点: 无序,不可重复。

Collection接口中的方法:

增加
add(E e) 添加成功返回true,添加 失败返回false.
addAll(Collection c) 把一个集合 的元素添加到另外一个集合中去。

删除
clear()
remove(Object o)

removeAll(Collection c)
retainAll(Collection c)

查看
size()

判断
isEmpty()
contains(Object o)
containsAll(Collection<?> c)

迭代
toArray()
iterator()
迭代器的方法:
hasNext()   问是否有元素可遍历。如果有元素可以遍历,返回true,否则返回false 。
          
  next()    获取元素…
    
         
  remove()  移除迭代器最后一次返回 的元素。

  • 注意: Object类型的数组可以存储任意类型的数据。
发布了27 篇原创文章 · 获赞 0 · 访问量 526

猜你喜欢

转载自blog.csdn.net/byzcy/article/details/102904906