我编写了一个程序,可以在文本中计算行,字和字符:它使用线程执行此操作.它有时候很好,但是其他时候不是很好.最终发生的事情是指向字数和变数的变量有时候会变短,有时候不会.

在我看来,线程有时会结束,然后才能对所有想要的单词或字符进行计数.是因为当while(true)循环中断时,这些线程超出范围?

我已经从我的问题的一部分中包含了代码:

private void countText() {

try {

reader = new BufferedReader(new FileReader("this.txt"));

while (true) {

final String line = reader.readLine();

if(line == null) {break;}

lines++;

new Thread(new Runnable() {public void run() {chars += characterCounter(line);}}).start();

new Thread(new Runnable() {public void run() {words += wordCounter(line);}}).start();

println(line);

}

} catch(IOException ex) {return;}

}

(子问题:这是我第一次询问某些东西和发布的代码,我不想使用StackOverflow代替谷歌和维基百科,我担心这不是一个适当的问题,我试图使问题更一般,所以我不只是要求帮助我的代码…但是,另一个网站,这种问题可能更适合?)

java线程在什么时候结束,java – 什么时候线程超出范围?相关推荐

  1. JAVA的多线程、死锁、线程间通信、如何规避死锁、线程安全的单例模式

    主要内容: 多线程 线程和进程间的关系 Java中的线程理论 Java中线程类的实现方式 Java中线程的常用方法 线程安全性问题 线程间通信 线程的死锁 如何规避死锁 线程安全的单例模式 多线程 线 ...

  2. java 手编线程池_死磕 java线程系列之自己动手写一个线程池

    欢迎关注我的公众号"彤哥读源码",查看更多源码系列文章, 与彤哥一起畅游源码的海洋. (手机横屏看源码更方便) 问题 (1)自己动手写一个线程池需要考虑哪些因素? (2)自己动手写 ...

  3. java 线程组作用_浅析Java中线程组(ThreadGroup类)

    一.概念 Java中使用ThreadGroup类来代表线程组,表示一组线程的集合,可以对一批线程和线程组进行管理.可以把线程归属到某一个线程组中,线程组中可以有线程对象,也可以有线程组,组中还可以有线 ...

  4. java 多线程 进程_Java多线程1:进程与线程概述

    进程和线程 谈到多线程,就得先讲进程和线程的概念. 进程 进程可以理解为受操作系统管理的基本运行单元.360浏览器是一个进程.WPS也是一个进程,正在操作系统中运行的".exe"都 ...

  5. Java多线程笔记(零):进程、线程与通用概念

    前言 不积跬步,无以至千里:不积小流,无以成江海.在学习Java多线程相关的知识前,我们首先需要去了解一点操作系统的进程.线程以及相关的基础概念. 进程 通常,我们把一个程序的执行称为一个进程.反过来 ...

  6. java线程切换 notify_浅谈 Java线程状态转换及控制

    作者:城北有个混子 出自:博客园 1.线程的状态(系统层面) 一个线程被创建后就进入了线程的生命周期.在线程的生命周期中,共包括新建(New).就绪(Runnable).运行(Running).阻塞( ...

  7. 详解java中Thread类,线程和进程的基本区别,多线程的好处,线程的五个生命周期,主线程和IDEA创建的Monitor Ctrl-Break守护线程;优雅地终止线程。死锁的产生

    线程:CPU调度的最小单位:线程共享堆内存和方法区,但各自享有栈空间.进程:CPU分配资源的最小单位. 为什么需要多线程:①避免其中一个模块阻塞造成系统假死:②程序异步处理(交替执行),提高程序执行效 ...

  8. java 多线程的使用_Java的多线程1:线程的使用

    概述 public enumState {/*** Thread state for a thread which has not yet started.*/NEW,/*** Thread stat ...

  9. java 线程执行完就会回收吗_Java线程池技术Executors的这个坑你踩过吗?

    线程池技术是Java的一大特性,如果我们想要编写高并发.高吞吐的程序,线程池的技术使用是必须的.对于很多程序员来说,多线程和线程池技术都了然于胸,基本原理和使用都数量掌握,分分钟可以写出一个生产消费者 ...

最新文章

  1. 系统测试方案如何写?
  2. Apache2.4开启php
  3. 软件工程—让软件包自带commit id
  4. Matlab求重复数字的个数tabulate
  5. linux转mysql_[转] linux下安装mysql服务器
  6. gan生成印刷体字母_字母GAN:AI生成英语字母!
  7. win10安装配置nginx
  8. Unity3D水下动物模型大集合
  9. Rufus创建Windows Server UEFI启动盘
  10. 什么pdf转换成word转换器在线好
  11. vue怎么给pc端浏览器设置一个最小屏幕_vue项目实现移动端适配的案例
  12. 计算机网络进入特权模式在哪里,计算机四级考试网络工程师考点一
  13. mac地址是由多少个bit组成_MAC地址是什么,MAC地址是怎么构成的,MAC地址占多少位,作用如何? 简单答案!!...
  14. 运行VUE项目时,出现npm ERR! A complete log of this run can be found in:...报错
  15. Raspbian镜像无头烧录
  16. 2016 年度码云热门项目排行榜 TOP 50
  17. 学习前端如何建立自己的知识体系?工作中如何快速进阶?
  18. 极客公园创新大会十周年首日看点:前沿思考论坛
  19. teechart mysql_TeeChart应用技术:在C# .NET Winforms设计/运行时TeeChart控件连接到MySQL(上篇)...
  20. HP DL380 G4启用iLO方法

热门文章

  1. iphone5登陆不了微信,提示“登录失败,连接失败,请检查网络设置”
  2. Oracle 安装报错 [INS-06101] IP address of localhost could not be determined 解决方法
  3. [图文] Fedora 28 使用 Virt-Manager 创建 KVM 虚拟机以及 配置 KVM 虚拟机
  4. python中的字符串处理
  5. 【BZOJ 2721】 2721: [Violet 5]樱花 (筛)
  6. 【LeetCode】69. Sqrt(x) (2 solutions)
  7. 三角网导线平差实例_网平差三角网三边导线网.doc
  8. 7-2 jmu-Java-01入门-取数字 (2 分)
  9. 年龄测试计算器软件,抖音很火的年龄计算器
  10. linux创建表空间 没有权限,Linux oracle数据库创建表空间、用户并赋予权限