java day 18

多线程

java day 18_第1张图片
GTL9_Y2B`KWALL0T_A{D.png

java day 18_第2张图片
5TXF8I)LHDXF}P)7MG2UJYW.png
  • 今天学习了线程,也了解到了进程。先说进程,进程是一个具有独立功能的程序关于某个数据集合的一次运行活动,它可以申请和拥有系统资源,是一个动态的概念,是一个活动的实体。而线程是在进程中执行的一个任务,一个进程可以包含多个线程,线程可以共享进程中的资源,线程可以被称为轻量级进程。我们把进程作为分配资源的基本单位,把线程作为独立运行和独立调度的基本单位。
    接着学习了synchronized(同步),当对某一个代码块使用时,一次只有一个线程可以进改代码块,当线程执行完并释放解锁后,下一个线程才能进入。当在方法声明时使用,表示一次只能有一个线程该方法,其它线程想调用该方法则必须排队等待,当前线程执行完方法后,下一个线程才能进入。当synchronized所包的范围越大,则运行的时间则会增长。
    在多线程中,除了Thread方法的使用,还用到了Object中的wait():导致当前线程等待,直到其他线程调用notify()和notifyAll(),notify():唤醒正在等待此对象的监视器上的单个线程,notifyAll():唤醒正在等待此对象的监视器上的多个线程。
    最后是死锁,即两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象。

你可能感兴趣的:(java day 18)