程序.线程.进程

程序进程线程的概念:

程序:是为完成特定任务,用某种语言编写的一组指令的集合.即指一段静态的代码.静态对象



进程:是程序的一次执行的过程,或正在运行的一个程序.动态的过程.她有自身的产生.存在.和消亡的过程,是动态的



线程:进程可进一步细化为线程,是一个程序内部的一条执行路径

  若一个进程可同时执行多个线程,就是正吃多线程的

 

thread的常用方法:

1.  start() 启动线程,并执行相应的run()方法

2. run() 子线程要执行的代码放在run()方法中

3. currentThread() 静态的,调取当前的线程

4. getName() 设置此线程的名字

5. setName() 设置此线程的名字

6. yield() 调用此方法的线程释放当前CPU的执行权
7. join() 在A线程中调用B线程的jion方法,表示:当执行到此方法,A线程停止,直至B线程完毕,A线程再接着jion()之后的代码执行
8. isAlive() 判断当前线程是否还存活
9. sleep(long L) 显示的让当前线程睡眠L毫秒

 

多线程的优点:

1提高应用程序的响应,对图像化界面更有意义.可增强用户的体验

2提高计算机系统cpu的利用率

3改善程序结构,将即长又复杂的进程分为多个线程,独立运行,利于理解和修改

 

多线程的安全问题

当多条语句在操作同一个线程共享数据时,一个线程对多条语句执行了一部分,还没有执行完,另一个线程参与进来.导致共享数据的错误,.
(一个线程在操作共享数据的过程,未执行完毕的情况下,另外的线程参与进来,导致共享数据出现问题) 解决办法:对多条操作共享数据的语句,只能让一个线程都执行完,在执行过程中其他线程不可以参与执行

JAVA对于多线程的安全问题提供了专业的解决方式:

  一:同步代码块
    1 synchronized(同步监视器(对象)){
      //需要被同步的代码块
    }
    同步监视器:有一个类的对象来充当.那个线程获取此监视器,会就执行.俗称"锁"

    2 synchronize还可以放在方法声明中,表示整个方法为同步方法
      例如:
      public synchronize void show(String name){}

 

posted @ 2018-11-22 01:37  我爱si搬砖  阅读(371)  评论(0编辑  收藏  举报