Java線程撥號器如何進行代碼編寫
作者:佚名
Java線程撥號器如何才能更好的使用相關的代碼,我們就在學習的時候需要注意源代碼的編寫。下面我們就看看如何才能更好的使用。
多個Java線程撥號器同時申請號碼不重復,斷電后能恢復.但是在使用的時候需要我們注意很多的代碼編寫。下面我們就來詳細的看看如何才能更好的進行相關的學習。希望大家有所收獲。以下就是對Java線程撥號器的相關問題介紹。
比如:
線程1 : 1, 4, 5, 6, 8, 9, 14…
線程2 : 2, 3, 7, 10, 11, 12, 13…
- package org.leno.j2se.lesson3.multiThread;
- import java.io.FileNotFoundException;
- import java.io.IOException;
- import java.io.RandomAccessFile;
- /**
- * @author leno
- * 一個簡單的放號器, 多個線程同時申請號碼不重復,斷電后能恢復.
- */
- public class SendCode implements Runnable{
- //號碼
- int code = 0;
- RandomAccessFile raf = null;
- //初始化塊
- {
- try {
- raf = new RandomAccessFile("sendCode.txt","rw");
- code = raf.readInt();
- System.out.println("恢復上次記錄:"+code);
- } catch (FileNotFoundException e) {
- System.out.println("文件找不到!");
- }catch (IOException e) {
- System.out.println("沒有合適的整數值");
- }
- }
- public void run() {
- while(true){
- synchronized (this) {
- try {
- Thread.sleep(300);
- } catch (InterruptedException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- code++;
- try {
- raf.seek(0);//從文件開頭以字節為單位測量的偏移量位置,在該位置設置文件指針
- raf.writeInt(code);//從文件指針的當前位置開始寫
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- System.out.println(Thread.currentThread().getName()+"申請到號碼:"+code);
- }
- }
- }
- public static void main(String[] args) {
- SendCode sc = new SendCode();
- new Thread(sc,"一號線程").start();
- new Thread(sc,"二號線程").start();
- new Thread(sc,"三號線程").start();
- new Thread(sc,"四號線程").start();
- }
- }
以上就是對Java線程撥號器的詳細代碼介紹。
【編輯推薦】
責任編輯:張浩
來源:
互聯網