JAVA经典面试题:四线程写四个文件、三线程循环有序打印ABC

题目一:

            将t1,t2,t3,t4这四个线程分别向4个文件中写入数据,t1写入1,t2写入2,t3写入3,t4写入4,分别在A,B,C,D这4个文件中写入如下内容:

  • A:123412341234
  • B:234123412341
  • C:341234123412
  • D:412341234123
                    转自: http://blog.0hi.cn/java-classic-interview-question.html
  • 用JAVA语言实现以上功能同步并且实现让线程并行工作。以下实现代码转自网络,有bug

    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.OutputStreamWriter;
    import java.util.Arrays;
    import java.util.concurrent.ExecutorService;
    import java.util.concurrent.Executors;
    import java.util.concurrent.atomic.AtomicInteger;
    import java.util.concurrent.locks.ReentrantLock;
     
     
    public class Main {
         
        static ExecutorService ex=Executors.newFixedThreadPool(4);
        static class MyFile{
         
            private File file;
            //用来表示当前文件的索引
            public AtomicInteger index;
            private ReentrantLock lock=new ReentrantLock();
            public MyFile(String filePath,int index){
         
                file=new File(filePath);
                this.index=new AtomicInteger(index);
            }
            //写入文件
            public void writeStr(String s) throws FileNotFoundException{
         
                FileOutputStream out=null;
                OutputStreamWriter</
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值