多线程 的问题望高手解疑惑

问题描述

请问如何在当前线程访问一个对象的时候锁住该对象让其他线程不能访问Monitor和Lock并不是真正的锁住一个对象资源,

解决方案

解决方案二:
Monitor和Lock并不是真正的锁住一个对象资源?怎么看出来的?
解决方案三:
Monitor和Lock就是啦。
解决方案四:
楼上两位看这篇文章就知道为什么了http://www.cnblogs.com/city22/archive/2007/01/30/634948.html
解决方案五:
别的线程不能操作对象?那么你需要对该类所有外部能调用的实例方法利用lock或[MethodImplAttribute(MethodImplOptions.Synchronized)]来作保护,或者参考这里的做法,虽然只对继承自ContextBoundObject或ServicedComponent的类有效http://lewisit.blogspot.com/2005/09/thread-safety-quick-fixes.html

时间: 2024-07-30 05:04:27

多线程 的问题望高手解疑惑的相关文章

【JAVA秒会技术之多线程】多线程java.util.concurrent详解

一.多线程 1.操作系统有两个容易混淆的概念,进程和线程. 进程:一个计算机程序的运行实例,包含了需要执行的指令:有自己的独立地址空间,包含程序内容和数据:不同进程的地址空间是互相隔离的:进程拥有各种资源和状态信息,包括打开的文件.子进程和信号处理. 线程:表示程序的执行流程,是CPU调度执行的基本单位:线程有自己的程序计数器.寄存器.堆栈和帧.同一进程中的线程共用相同的地址空间,同时共享进进程锁拥有的内存和其他资源. 2.Java标准库提供了进程和线程相关的API,进程主要包括表示进程的jav

Linux下多线程中的信号处理详解教程

在linux下,每个进程都有自己的signal mask,这个信号掩码指定哪个信号被阻塞,哪个不会被阻塞,通常用调用sigmask来处理.同时每个进程还有自己的signal action,这个行为集合指定了信号该如何处理,通常调用sigaction来处理. 使用了多线程后,便有些疑问: 信号发生时,哪个线程会收到是不是每个线程都有自己的mask及action每个线程能按自己的方式处理信号么 首先,信号的传递是根据情况而定的: 如果是异常产生的信号(比如程序错误,像SIGPIPE.SIGEGV这些

利用curl 多线程 模拟 并发的详解_php技巧

首先,先了解下 php中的curl多线程函数: 复制代码 代码如下: # curl_multi_add_handle# curl_multi_close# curl_multi_exec# curl_multi_getcontent# curl_multi_info_read# curl_multi_init# curl_multi_remove_handle# curl_multi_select 一般来说,想到要用这些函数时,目的显然应该是要同时请求多个url,而不是一个一个依次请求,否则不如

linux中Axel多线程下载工具参数详解

Axel安装 Debian/Ubuntu/Linux Mint用户  代码如下 复制代码 sudo apt-get install axel Redhat/Fedora 用户可用下面命令安装:  代码如下 复制代码 yum install axel 同样,大家可以源码编译安装:  代码如下 复制代码 cd ~/Download wget http://alioth.debian.org/frs/download.php/3015/axel-2.4.tar.gz tar zxvf axel-2.4

PHP多线程的实现方法详解

多线程是java中一个很不错的东西,很多朋友说在php中不可以使用PHP多线程了,其实那是错误的说法PHP多线程实现方法和fsockopen函数有关,下面我们来介绍具体实现程序代码,有需要了解的同学可参考. 当有人想要实现并发功能时,他们通常会想到用fork或者spawn threads,但是当他们发现php不支持多线程的时候,大概会转换思路去用一些不够好的语言,比如perl. 其实的是大多数情况下,你大可不必使用 fork 或者线程,并且你会得到比用 fork 或 thread 更好的性能.

基于Java回顾之多线程同步的使用详解_java

首先阐述什么是同步,不同步有什么问题,然后讨论可以采取哪些措施控制同步,接下来我们会仿照回顾网络通信时那样,构建一个服务器端的"线程池",JDK为我们提供了一个很大的concurrent工具包,最后我们会对里面的内容进行探索. 为什么要线程同步? 说到线程同步,大部分情况下, 我们是在针对"单对象多线程"的情况进行讨论,一般会将其分成两部分,一部分是关于"共享变量",一部分关于"执行步骤". 共享变量 当我们在线程对象(Run

Java多线程继承Thread类详解第1/2页_java

调用方法: /** * 点击量/月(年)Thread */ public void yearlyClickThread() { // 获取参数 String year = getPara("year"); // 统计数据集X List<String> xList = new ArrayList<String>(); xList.add("January"); xList.add("February"); xList.add

php多线程安装pthreads步骤详解

PHP扩展下载:https://github.com/krakjoe/pthreads PHP手册文档:http://php.net/manual/zh/book.pthreads.php 安装脚本  代码如下 复制代码 #!/bin/sh cd /web/soft/php if [ -d "pthreads-master" ];then rm -rf pthreads-master fi unzip pthreads-master.zip cd pthreads-master /we

深入SQLite多线程的使用总结详解_java

SQLite支持3种线程模式: 单线程:这种模式下,没有进行互斥,多线程使用不安全.禁用所有的mutex锁,并发使用时会出错.当SQLite编译时加了SQLITE_THREADSAFE=0参数,或者在初始化SQLite前调用sqlite3_config(SQLITE_CONFIG_SINGLETHREAD)时启用. 多线程:这种模式下,只要一个数据库连接不被多个线程同时使用就是安全的.源码中是启用bCoreMutex,禁用bFullMutex.实际上就是禁用数据库连接和prepared stat