Java線程撥號(hào)器如何進(jìn)行代碼編寫
作者:佚名 
  Java線程撥號(hào)器如何才能更好的使用相關(guān)的代碼,我們就在學(xué)習(xí)的時(shí)候需要注意源代碼的編寫。下面我們就看看如何才能更好的使用。
 多個(gè)Java線程撥號(hào)器同時(shí)申請(qǐng)?zhí)柎a不重復(fù),斷電后能恢復(fù).但是在使用的時(shí)候需要我們注意很多的代碼編寫。下面我們就來(lái)詳細(xì)的看看如何才能更好的進(jìn)行相關(guān)的學(xué)習(xí)。希望大家有所收獲。以下就是對(duì)Java線程撥號(hào)器的相關(guān)問題介紹。
比如:
線程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
 - * 一個(gè)簡(jiǎn)單的放號(hào)器, 多個(gè)線程同時(shí)申請(qǐng)?zhí)柎a不重復(fù),斷電后能恢復(fù).
 - */
 - public class SendCode implements Runnable{
 - //號(hào)碼
 - int code = 0;
 - RandomAccessFile raf = null;
 - //初始化塊
 - {
 - try {
 - raf = new RandomAccessFile("sendCode.txt","rw");
 - code = raf.readInt();
 - System.out.println("恢復(fù)上次記錄:"+code);
 - } catch (FileNotFoundException e) {
 - System.out.println("文件找不到!");
 - }catch (IOException e) {
 - System.out.println("沒有合適的整數(shù)值");
 - }
 - }
 - 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);//從文件開頭以字節(jié)為單位測(cè)量的偏移量位置,在該位置設(shè)置文件指針
 - raf.writeInt(code);//從文件指針的當(dāng)前位置開始寫
 - } catch (IOException e) {
 - // TODO Auto-generated catch block
 - e.printStackTrace();
 - }
 - System.out.println(Thread.currentThread().getName()+"申請(qǐng)到號(hào)碼:"+code);
 - }
 - }
 - }
 - public static void main(String[] args) {
 - SendCode sc = new SendCode();
 - new Thread(sc,"一號(hào)線程").start();
 - new Thread(sc,"二號(hào)線程").start();
 - new Thread(sc,"三號(hào)線程").start();
 - new Thread(sc,"四號(hào)線程").start();
 - }
 - }
 
以上就是對(duì)Java線程撥號(hào)器的詳細(xì)代碼介紹。
【編輯推薦】
責(zé)任編輯:張浩 
                    來(lái)源:
                    互聯(lián)網(wǎng)
 














 
 
 
 
 
 
 