lock()

阅读(499) 标签: 加同步锁,

描述:

加同步锁

语法:

lock(n,s)

备注:

加同步锁,以防止多个线程同时访问文件,加锁以后仅限此线程访问、执行,访问执行完成以后解锁,其他进程才可以继续访问执行。

参数:

n

锁名

s

加锁超时时间,单位毫秒,省略表示一直等待

选项:

@u

解锁

返回值:

锁名

示例:

   加锁

 

A

 

1

=lock(1)

加同步锁,锁名为1

2

>output("Task "/arg1/" start...")

输出参数,开始计算

3

=file("D:/file/test/1.btx")

创建btx文件

4

=create(ID,Value)

创建序表

5

>A4.record([arg1,arg1*arg1])

A4的序表中添加记录

6

>sleep(1000)

系统睡眠60

7

>A3.export@ab(A4)

A4中的序表追加写入到btx文件中

8

>output("Task "/arg1/" finished.")

输出参数,计算结束

9

>lock@u(1)

解锁

其他进程访问

 

A

 

1

=file("D:/file/test/1.btx")

 

2

D:\test\012月份集算器发布\lock1.dfx

 

3

=callx(A2,to(100))

使用callx函数访问文件时,【工具】-【选项】中最大并行数要大于一,加锁以后其他进程访问时不会报错

4

=A1.import@b()