当前位置:首页 > 开发 > 编程语言 > 多线程 > 正文

Java多线程

发表于: 2015-04-18   作者:arenzhj   来源:转载   浏览次数:
摘要: -------------------------------------------------------------------------- 多线程的关键字    synchronized---加上synchronized 和 块语句,在多线程访问的时候,同一时刻只能有一个线程能够用synchronized 修饰的方法 或者 代码块。  

--------------------------------------------------------------------------

多线程的关键字
    synchronized---加上synchronized 和 块语句,在多线程访问的时候,同一时刻只能有一个线程能够用synchronized 修饰的方法 或者 代码块。    
    volatile--线程在每次使用变量的时候,都会读取变量修改后的最的值    
--------------------------------------------        
1、synchronized关键字的作用域有二种:
1)是某个对象实例内,synchronized aMethod(){}可以防止多个线程同时访问这个对象的synchronized方法(如果一个对象有多个synchronized方法,只要一个线程访问了其中的一个synchronized方法,其它线程不能同时访问这个对象中任何一个synchronized方法)。这时,不同的对象实例的synchronized方法是不相干扰的。也就是说,其它线程照样可以同时访问相同类的另一个对象实例中的synchronized方法;
2)是某个类的范围,synchronized static aStaticMethod{}防止多个线程同时访问这个类中的synchronized static 方法。它可以对类的所有对象实例起作用。

2、除了方法前用synchronized关键字,synchronized关键字还可以用于方法中的某个区块中,表示只对这个区块的资源实行互斥访问。用法是: synchronized(this){/*区块*/},它的作用域是当前对象;

3、synchronized关键字是不能继承的,也就是说,基类的方法synchronized f(){} 在继承类中并不自动是synchronized f(){},而是变成了f(){}。继承类需要你显式的指定它的某个方法为synchronized方法;

Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。

     一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。

     二、然而,当一个线程访问object的一个synchronized(this)同步代码块时,另一个线程仍然可以访问该object中的非synchronized(this)同步代码块。

     三、尤其关键的是,当一个线程访问object的一个synchronized(this)同步代码块时,其他线程对object中所有其它synchronized(this)同步代码块的访问将被阻塞。

     四、第三个例子同样适用其它同步代码块。也就是说,当一个线程访问object的一个synchronized(this)同步代码块时,它就获得了这个object的对象锁。结果,其它线程对该object对象所有同步代码部分的访问都被暂时阻塞。

     五、以上规则对其它对象锁同样适用.    

  

 

 

 

--------------------------------------------------------------------------

 

 

--------------------------------------------------------------------------

 

--------------------------------------------------------------------------

 

 

--------------------------------------------------------------------------

 

Java多线程

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
一、什么是线程? 线程是虚拟的东西,看不见,摸不着,就知道可以这样触摸到线程:在java中 new Thr
多线程是指从软件或者硬件上实现多个线程并发执行的技术,可以使计算机能够同时执行多个线程。但是
❀进程: 是指运行中的应用程序,每个进程都有自己独立的地址空间(内存空间) ❀线程: 线程是轻量
一、多线程概述 一个进程中至少有一个线程,每一个线程都有自己运行的内容,这个内容可以称为线程要
1、多线程概述 线程不是进程,它们都是并发机制的一种有效手段,进程包括线程,线程是比进程更小的
首先我们先来了解一下进程、线程、并发执行的概念:   进程是指:一个内存中运行的应用程序,每个
在 java 中要想实现多线程,有两种手段,一种是继续 Thread 类,另外一种是实现 Runable 接口。 对
基础知识,写下笔记,以备查阅 1、 认识Thread和Runnable Java中实现多线程有两种途径:继承Thread
方法摘要 static Thread currentThread() 返回对当前正在执行的线程对象的引用。 ClassLoader getCo
创建线程的2种方法: 1.实现Runable接口 package com.thread; public class MyThread implements Ru
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号