Java线程拨号器如何进行代码编写
发布时间:2010/5/12 11:44:16 来源:城市学习网 编辑:ziteng
多个Java线程拨号器同时申请号码不重复,断电后能恢复.但是在使用的时候需要我们注意很多的代码编写。下面我们就来详细的看看如何才能更好的进行相关的学习。希望大家有所收获。以下就是对Java线程拨号器的相关问题介绍。
比如:
线程1 : 1, 4, 5, 6, 8, 9, 14…
线程2 : 2, 3, 7, 10, 11, 12, 13…
1.package org.leno.j2se.lesson3.multiThread;
2.import java.io.FileNotFoundException;
3.import java.io.IOException;
4.import java.io.RandomAccessFile;
5./**
6.* @author leno
7.* 一个简单的放号器, 多个线程同时申请号码不重复,断电后能恢复.
8.*/
9.public class SendCode implements Runnable{
10.//号码
11.int code = 0;
12.RandomAccessFile raf = null;
13.//初始化块
14.{
15.try {
16.raf = new RandomAccessFile("sendCode.txt","rw");
17.code = raf.readInt();
18.System.out.println("恢复上次记录:"+code);
19.} catch (FileNotFoundException e) {
20.System.out.println("文件找不到!");
21.}catch (IOException e) {
22.System.out.println("没有合适的整数值");
23.}
24.} [NextPage] 25.public void run() {
26.while(true){
27.synchronized (this) {
28.try {
29.Thread.sleep(300);
30.} catch (InterruptedException e) {
31.// TODO Auto-generated catch block
32.e.printStackTrace();
33.}
34.code++;
35.try {
36.raf.seek(0);//从文件开头以字节为单位测量的偏移量位置,在该位置设置文件指针
37.raf.writeInt(code);//从文件指针的当前位置开始写
38.} catch (IOException e) {
39.// TODO Auto-generated catch block
40.e.printStackTrace();
41.}
42.System.out.println(Thread.currentThread().getName()+"申请到号码:"+code);
43.}
44.}
45.}
46.public static void main(String[] args) {
47.SendCode sc = new SendCode();
48.new Thread(sc,"一号线程").start();
49.new Thread(sc,"二号线程").start();
50.new Thread(sc,"三号线程").start();
51.new Thread(sc,"四号线程").start();
52.}
53.}
以上就是对Java线程拨号器的详细代码介绍。