idea运行不了java项目?
ID:
1.首先,检查是否设置了sdk。您可以在文件项目结构项目中查看和设置它。将项目SDK:设置为版本1.8。将项目语言l:设置为相应的版本8。在JavaS:设置为指向我们创建的out文件夹。最后,单击应用,然后单击确定。
2.检查输出路径设置。
点击文件-gt项目结构-gt模块-gt路径-gt勾选继承项目编译输出路径,设置完成后点击应用-gtOK。
再试一次,应该能正常工作。
为啥我用IDEA测试多线程,一直是先运行main()方法中的代码?然后才会执行多线程?
看到你的问题,我可以我不得不进来。也许你刚刚开始在程这个行业。虽然我是普通班出身,但是你知道现在大学生活太丰富了,学习永远是最后一名。结果毕业的时候找工作遇到了困难,所以那时候我就开始系统的学习我的学科。这个行业,怎么说呢,可以很快习惯培训,但是我觉得还是需要一些基础知识支撑的。比如计算机组成原理,微机原理,汇编语言,编译原理,操作系统,软件工程,面向对象方法,计算机网络,当然还有像离散数学,统计学这样的课程,都是这个行业的基础课。
嗯,我对不起,好像有点远。我先回答你的问题:
想要理解你的问题,首先需要理解两个概念,什么是流程,什么是线程,它们之间是什么关系,是如何工作的。
流程:
我是根据书上写的这个概念:进程是程序在计算机中数据集上的运行活动,是系统中资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程的计算机体系结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。
这个解释似乎有点混乱。其实简单点就是我们操作系统调度的单元,比如我们开始的想法,是操作系统中的一个进程。我们经常使用的Tomcat也是启动后的一个进程。启动后,它们在操作系统中都有一个唯一的进程id。我们常说强行关闭一个软件,其实就是在扼杀进程。
过程的五态模型
线程:
线程是一个执行路径,是程序执行时的最小单位。它是一个进程的执行流,是CPU调度和分派的基本单位。一个进程可以由很多线程组成,这些线程共享进程的所有资源,每个线程都有自己的栈和局部变量。线程由CPU独立调度和执行,允许多个线程在多CPU环境下同时运行。同样,多线程也可以实现并发操作,每个请求都被分配一个线程来处理。
进程和线程之间的关系:
程序是一个进程,程序中的多个任务称为线程。进程是资源分配和调度操作的基本单位,即处理器调度的基本单位。一个线程只能属于一个进程,一个进程可以有多个线程,但至少要有一个线程。线程是操作系统可以识别的最小执行和调度单元。资源被分配给一个进程,同一进程的所有线程共享该进程的所有资源。同一进程中的多个线程共享代码段(代码和常量)、数据段(全局变量和静态变量)和扩展段(堆存储)。但是每个线程都有自己的栈段,也叫runtime,用来存储所有的局部变量和临时变量,也就是每个线程都有自己的栈和局部变量。在线程执行过程中,它们需要协同同步。不同进程的线程应该通过消息通信来同步。结合你的问题解释:
你的问题是为什么先拿主方法。其实我觉得可以理解为一种传统,java作为后来的语言,是对之前语言的致敬。根据程序运行的机制,一个程序的执行必须由另一个之前的程序启动,最原始的就是操作系统。说白了,主要方法就是jvm默认寻找的方法(有很多解释,比如设计汇编指令,设计C语言等等。),所以你可以理解java是用C语言写的,C语言使用的main方法的声明就是入口,java也是如此。说的通俗一点,main在编译器的源代码中被标记为程序执行的入口。我觉得我说的不是人话。
也就是说,你在IDEA中点击运行的程序就是一个进程,而这个进程的入口方法就是mian方法。你说的多线程就是你启动的这个进程中的单元,它当然会在mian方法之后执行。
好吧,我不我不想写。我不我不知道我在做什么。;我在写东西。事实上,我知道一些事情,但我不能不要写它。可能我还是有点见识的。希望对你有一点帮助。