NSThread线程同步锁上小节用NSThread实现读取网络图片 , 这节用NSThread 模拟一个卖票的例子 。用NSLock 或者NSCondition 锁定资源 var total = 100 //总票数
var w1 = 0 //窗口1卖出票数
var w2 = 0 //窗口2卖出票数
var isSell = true //是否出售
var l...
分类:
编程语言 时间:
2015-08-28 21:27:29
阅读次数:
266
标题已经说明,子线程wai()时候默认的锁不是同步代码块的锁,因此wai时候显示的指明锁,现在解释看code:public class Test {// static boolean flag=true; public static void main(String[] args) throws I...
分类:
编程语言 时间:
2015-08-27 09:31:10
阅读次数:
129
前面通过同步锁来同步任务的行为,两个任务在交替访问共享资源的时候,可以通过使用同步锁使得任何时候只有一个任务可以访问该资源,见博客:线程同步之synchronized关键字。下面主要讲的是如何使任务彼此间可以协作,使得多个任务可以一起工作去解决木某个问题,因为有些问题中,某些部分必须在其他部分被解决之前解决,就像在餐厅服务员要端菜就必须有厨师做好了菜。在任务协作时,可以让任务自身挂起,直至某些外部...
分类:
编程语言 时间:
2015-08-25 23:47:40
阅读次数:
200
1.Mousepackage com.yfs.javase;public class Mouse { private int index = 1; private boolean isLive = false; //跳出方法 同步锁 public synchronized void jump().....
分类:
编程语言 时间:
2015-08-25 23:31:43
阅读次数:
266
1. 线程基础1.1. 线程状态线程有5种状态,状态转换的过程如下图所示:1.2. 线程同步(锁)多线程的优势在于可以同时运行多个任务(至少感觉起来是这样)。但是当线程需要共享数据时,可能存在数据不同步的问题。考虑这样一种情况:一个列表里所有元素都是0,线程"set"从后向前把所有元素改成1,而线程...
分类:
编程语言 时间:
2015-08-21 00:04:37
阅读次数:
253
Monitor里边有一些static方法,可以用于在对象上获取同步锁,来进行一些进程同步控制操作用法及注意点如下:using System;using System.Collections.Generic;using System.Linq;using System.Text;using Syste...
原子性 nonatomic/atomic 在默认的情况下,由编译器合成的方法会通过锁定机制确保其原子性(atomicity)。如果具备nonatomic特质,则不使用同步锁。 读/写权限 ?readwrite/readonly 内存管理语义 assign “设置方...
分类:
其他好文 时间:
2015-08-17 17:36:32
阅读次数:
131
package com.test;
/**
*
* @author taoweiwei
* 问题:子线程循环10次,接着主线程循环100,接着又回到子线程10次,
* 接在再回到主线程又循环100,如此循环50次,请写出程序。
* 经验:1、要用到共同数据(包括同步锁)的若干个方法应该归属在同一个类身上,
* 这种设计正好体现了高类聚和程序的健壮性。
*...
分类:
编程语言 时间:
2015-08-08 13:38:48
阅读次数:
122
多线程wait()和sleep()的区别: 1、wait()可以指定时间,sleep()必须指定时间。 2、在同步中时,对cpu的执行权和处理不同。 wait() 释放执行权,释放锁。 sleep() 释放执行权,不释放锁。 在同步锁中(synchronized),多线程可能同...
分类:
编程语言 时间:
2015-08-07 13:08:32
阅读次数:
120
package ba;public class Tongbu implements Runnable{ int i=100; public void run(){ while(true){ sell(); } } public synchronized void sell(){ if(...
分类:
其他好文 时间:
2015-08-06 00:07:09
阅读次数:
98