速讀:程序、進程和線程——多線程的創(chuàng)建方法
目錄
【資料圖】
程序、進程和線程的概念
多線程的優(yōu)點
Thread類關(guān)于多線程的創(chuàng)建
Thread類的相關(guān)方法
線程的調(diào)度
線程的五種狀態(tài)
線程的同步
總結(jié)同步方法
衍生內(nèi)容————單例設(shè)計模式
死鎖問題
鎖的概念
sleep()和wait()的異同
首先要明確幾個概念
程序、進程和線程的概念
程序:完成特定任務(wù),用某種特殊的語言編寫的一組指令的集合
進程:是執(zhí)行路徑,一個進程同一時間并行或者正在運行的程序
線程:是執(zhí)行路徑,一個進程同一時間并行或者執(zhí)行多個進程,就是多線程
注:進程中也有可能有多個線程
CPU也分為多核CPU和單核CPU
單核CPU:實際上進行的是某種意義上的假CPU,一個CPU同時做好多事,如果一個沒有準備好,就先將該事件掛起,去進行別的,可以用一張圖來表示
多核CPU(取決與主頻來利用哪個):多核CPU就相當于多個單核CPU工作
同時也要解釋兩個詞的含義
并行:多個CPU任務(wù)一起進行
并發(fā):一個CPU做多個任務(wù)
注:并發(fā)只是看上去“同時”,但是實際上只是在CPU上進行高速的切換任務(wù),以至于僅僅是看上去是同時,并行才是真正意義上的同時
多線程的優(yōu)點
1、提高應(yīng)用程序的響應(yīng)
2、提高CPU的利用率
3、改善程序結(jié)構(gòu),每個線程獨立運行,互不干擾,便于修改
提到多線程,就不得不提一個特殊的類
Thread類關(guān)于多線程的創(chuàng)建
方法一:
1、創(chuàng)建一個繼承于Thread類的子類
2、重寫Thread類中的run()
3、創(chuàng)建Thread類子類的對象(要在主線程上創(chuàng)建)、
4、通過對象去調(diào)用start()
想要創(chuàng)建一個多線程的代碼如下
//主函數(shù)中的體現(xiàn)為//1、創(chuàng)建了繼承Thread的子類//在繼承Thread中的表現(xiàn)為public class ExtendsThread extends Thread { @Override //2、此處為標準的對于run()函數(shù)重寫 //對run()函數(shù)的重寫就相當于對于這一條線程中你想做的所有任務(wù) public void run() { super.run(); for(int i=0;i<=20;i++) { System.out.println(i); } }}public class ThreadTest { public static void main(String[]args) { //3、創(chuàng)建了繼承Thread子類的對象 Thread et=new ExtendsThread(); //4、通過對象調(diào)用了start() et.start(); //調(diào)用start()之后就開啟多線程 }}
此處需要注意的是
1、run方法的重寫:將這個線程要執(zhí)行的所有操作全部都聲明在run方法中
2、et.run()也能在主函數(shù)中直接調(diào)用,也能完整的執(zhí)行在run方法中的指令,但是不能體現(xiàn)多線程,就僅僅是將指令完成,et.run()就僅僅只是調(diào)用方法看
3、不能夠讓已經(jīng)start()的線程再去重啟線程
4、可以創(chuàng)建多個對于ExtendsThread的對象,此時這個對象可以再次開始start(),相當于多開了一個線程,只不過執(zhí)行的是相同內(nèi)容
5、匿名子類與匿名對象同樣適用
public class ThreadTest { public static void main(String[]args) { Thread et=new ExtendsThread(); //此處為體現(xiàn)多線程,同時開啟兩個線程 et.start(); //以下即為匿名子類 //直接開啟多線程 new Thread(){ public void run() { super.run(); for(int i=0;i<=10;i++) { System.out.println(i+"#"+i); } } }.start(); }}public class ExtendsThread extends Thread { @Override public void run() { super.run(); for(int i=0;i<=10;i++) { System.out.println(i+"*"+i); } }}
第一次的執(zhí)行結(jié)果
方法二:
1、創(chuàng)建一個實現(xiàn)了Runnable接口的類
2、實現(xiàn)Runnable接口中的抽象方法
3、創(chuàng)建實現(xiàn)類對象
4、將此對象作為參數(shù)傳至Thread類的構(gòu)造器,創(chuàng)造Thread類的對象
5、利用Thread()類的對象調(diào)用start()
public class RunnalbeThread implements Runnable//1、創(chuàng)建一個實現(xiàn)Runnable的類{ @Override//2、類中重寫Runnable的方法,也就是run方法 public void run() { for(int i=1;i<=10;i++) { System.out.println(Thread.currentThread().getName()+":"+i); } }}public class ThreadTest { public static void main(String[] args) { Thread rt=new Thread(new RunnalbeThread()); //3、創(chuàng)建一個對應(yīng)類的對象 //4、將這個對象傳入到Thread的構(gòu)造器 rt.start(); //5、用這個對應(yīng)的Thread對象來繼續(xù)調(diào)用start() rt.setName("線程3"); for(int i=1;i<=10;i++) { System.out.println(Thread.currentThread().getName()+":"+i+"-"+Thread.currentThread().isAlive()); } }}
在這個地方,如果沒有創(chuàng)建匿名對象(對于實現(xiàn)Runnable的實現(xiàn)類),一個實現(xiàn)類的對象,可以多次傳入到Thread的構(gòu)造器里面,創(chuàng)造更多的線程
兩種方法的比較
繼承法(方法一)由于Java的單繼承性,導(dǎo)致如果需要繼承Thread類的類由原本的一套體系,可能會影響該代碼的實現(xiàn),由此看來,實現(xiàn)接口的方式是更加活泛的,更自由。
實操中優(yōu)先選擇Runnable接口的方式
1、實現(xiàn)的方式?jīng)]有單繼承性的限制
2、實現(xiàn)的方式更適合多個線程共享數(shù)據(jù)的情況
注:Thread類也實現(xiàn)了Runnable接口
Thread類的相關(guān)方法
1、String getName();
返回線程名稱
2、void setName(String name);
設(shè)置線程名稱
public static void main(String[] args) { Thread et = new ExtendsThread(); et.setName("線程--1"); System.out.printf(et.getName());}
運行結(jié)果
此處需要注意的是,主線程也是可以命名的,如以下代碼
public class ThreadTest { public static void main(String[] args) { Thread et = new ExtendsThread(); Thread.currentThread().setName("主線程"); System.out.printf(Thread.currentThread().getName()); }}
運行結(jié)果如下
3、currentThread()方法
靜態(tài)方法,返回當前執(zhí)行此代碼的線程(對象)
4、yield()方法
釋放當前CPU的執(zhí)行權(quán)
也存在當我們釋放完執(zhí)行權(quán)之后,CPU再次將執(zhí)行權(quán)分配給目前線程的情況
5、join()方法
相當于在原本的線程1上,讓另一個線程2截斷,知道這個線程2執(zhí)行結(jié)束,否則不再進行線程1(在線程1之中調(diào)用線程2的join方法)
代碼測試如下
public class ExtendsThread extends Thread{ @Override public void run() { super.run(); for(int i=0;i<=10;i++) { System.out.println(Thread.currentThread().getName()+":"+i+"*"+i); } }}public class ExtendsThread2 extends Thread{ public void run() { super.run(); for(int i=0;i<=10;i++) { System.out.println(Thread.currentThread().getName()+":"+i+"#"+i); } }}public class ThreadTest { public static void main(String[] args) { Thread et = new ExtendsThread(); Thread et2=new ExtendsThread2(); et.start(); et2.start(); et.setName("線程1"); et2.setName("線程2"); Thread.currentThread().setName("主線程"); for(int i=0;i<=20;i++) { System.out.println(Thread.currentThread().getName()+":"+i); if(i%5==0) { try { et2.join(); } catch (InterruptedException e) { e.printStackTrace(); } } } }}
測試結(jié)果如下
當主線程的i跑到5的時候,此時調(diào)用了et.join()和et2.join()此時的主線程已經(jīng)被掛起了,直到線程1和線程2運行完之后,才會繼續(xù)主線程的進行。
6、stop()
強制結(jié)束線程,可以提前結(jié)束線程的生命周期。(不推薦使用stop()結(jié)束進程)
public class ExtendsThread extends Thread{ @Override public void run() { super.run(); for(int i=0;i<=10;i++) { System.out.println(Thread.currentThread().getName()+":"+i+"*"+i); if(i==5) { Thread.currentThread().stop(); //此處用stop強制停止了 //當i=5的時候強制停止線程 } } }}public class ThreadTest { public static void main(String[] args) { Thread et = new ExtendsThread(); Thread et2=new ExtendsThread2(); et.start(); et.setName("線程1"); Thread.currentThread().setName("主線程"); for(int i=1;i<=10;i++) { System.out.println(Thread.currentThread().getName()+":"+i); } }}
測試結(jié)果
如圖所示,線程1確實只進行到i=5的時候
7、sleep(long millitime)
強制線程進入休眠,單位是毫秒
在指定時間內(nèi)強制休眠
需要注意的是,對某個線程使用sleep的話,該線程就會進入到掛起狀態(tài),在指定時間掛起。相當于主動讓出了CPU的執(zhí)行權(quán)。
8、isAlive()
判斷當前線程是否存活
舉例如下
public class ExtendsThread extends Thread{ @Override public void run() { super.run(); for(int i=0;i<=10;i++) { System.out.println(Thread.currentThread().getName()+":"+i+"-"+Thread.currentThread().isAlive()); } }}public class ThreadTest { public static void main(String[] args) { Thread et = new ExtendsThread(); Thread et2=new ExtendsThread2(); et.start(); et.setName("線程1"); Thread.currentThread().setName("主線程"); for(int i=1;i<=10;i++) { System.out.println(Thread.currentThread().getName()+":"+i+"-"+Thread.currentThread().isAlive()); } System.out.println(et.isAlive()); }}
結(jié)果如下
如圖所示,在代碼的最后,et所開啟的線程已經(jīng)結(jié)束,所以此時打印出來的false
線程的調(diào)度
線程的進行主要是看時間片,一般情況下,多個線程都是并發(fā),所以對于CPU的執(zhí)行權(quán)一般是進行搶奪,高優(yōu)先級的線程優(yōu)先搶奪CPU的執(zhí)行權(quán)。
說到這里就不得不提到線程的優(yōu)先等級(這里的優(yōu)先級都是在線程誕生的時候就是設(shè)置好的,默認為5)
>MAX_PRIORITY:10
>MIN_PRIORITY:1
>NORM_PRIORITY:5
也有兩個方法是關(guān)于線程的優(yōu)先級
1、getPriority():返回線程優(yōu)先級
2、setPriority(int newPriority):改變線程的優(yōu)先級
高優(yōu)先級搶占低優(yōu)先級的線程的CPU執(zhí)行權(quán),但是是從概率上而言,高優(yōu)先級的線程有更大的概率去執(zhí)行CPU
線程的五種狀態(tài)
1、新建:當一個Thread類或其子類的聲明并創(chuàng)建時,新生線程處于此狀態(tài)
2、就緒:當線程被start()之后,就會進入隊列等待CPU的時間片
3、運行:獲得CPU資源,進入運行狀態(tài),run定義了線程操作和功能
4、阻塞:在某種情況下,被人為掛起或執(zhí)行輸入輸出,讓出CPU的執(zhí)行權(quán)
5、死亡:線程完成了全部工作或被提前強制性中止(stop),或者出現(xiàn)異常導(dǎo)致結(jié)束,比如join()會使線程被掛起,造成線程阻塞
線程的同步
線程的安全問題(不一定出現(xiàn)線程安全問題)
沒有sleep()出現(xiàn)時,錯誤的概率小,但是安全問題總是要解決的
有可能會出現(xiàn)極端情況
此時帶入一個場景,比如說一個線程代表一個窗口,一個售票窗口,線程每進行一次就掛起一次,會打印票號,但是如果正常進行,票號應(yīng)該是連號,但是會出現(xiàn)如下情況
代碼如下
public class RunnalbeThread implements Runnable{ public static int num=30; public static int tnum=1; @Override public void run() { while(num!=0) { if(num>0) { num--; tnum++; System.out.println(Thread.currentThread().getName()+":"+tnum); try { Thread.currentThread().sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } } }}public class ThreadTest { public static void main(String[] args) { Thread rt3 = new Thread(new RunnalbeThread()); Thread rt2 = new Thread(new RunnalbeThread()); Thread rt = new Thread(new RunnalbeThread()); rt2.start(); rt3.start(); rt.start(); rt3.setName("線程3"); rt.setName("線程1"); rt2.setName("線程2"); }}
代碼測試結(jié)果如下
很明顯的,會出現(xiàn)重號的現(xiàn)象
原因:當某個線程操作票的過程中,尚未完成操作,另一個線程參與進來,也對車票進行操作(相當于是共享數(shù)據(jù))
如何解決
加鎖
當一個線程在操作共享數(shù)據(jù)的時候,其他線程不能參與,直到線程a操作結(jié)束,其他線程才能開始操作。即使a處于阻塞狀態(tài),也不能被改變
方法一:同步代碼塊
synchronized(同步監(jiān)視器){
需要被同步的代碼}
說明:操作共享數(shù)據(jù)的代碼,即為需要被同步的代碼
同步監(jiān)視器,俗稱鎖,可以隨意扔一個對象進去
要求:多個線程要共用同一把鎖,不能設(shè)置多個鎖,此時不能使用匿名
缺點:操作同步代碼時,僅能有一個線程操作,其他的都在等待,相當于是一個單線程操作過程,相對而言效率會很低
此時會出現(xiàn)一個鎖不唯一的問題,由于鎖的創(chuàng)建在Thread的子類中,但是使用此方法創(chuàng)造進程需要newThread的子類的對象,此時會new出很多鎖,此時最好的解決方案就是把鎖進行static
方法展示
public class RunnalbeThread implements Runnable{ public static int num=30; @Override public void run() { while(num!=0) { try { Thread.currentThread().sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } synchronized (RunnalbeThread.class) { if(num>0) { num--; System.out.println(Thread.currentThread().getName()+":"+num); } } } }}public class ThreadTest { public static void main(String[] args) { Thread rt3 = new Thread(new RunnalbeThread()); Thread rt2 = new Thread(new RunnalbeThread()); Thread rt = new Thread(new RunnalbeThread()); rt2.start(); rt3.start(); rt.start(); rt3.setName("線程3"); rt.setName("線程1"); rt2.setName("線程2"); }}
代碼中,把對于所有共享數(shù)據(jù)的操作全部都包起來了,達到監(jiān)視的作用
結(jié)果如下
還有一個需要注意的點就是如果是用接口實現(xiàn)的方法創(chuàng)建的線程,可以考慮使用this的,之所以繼承法不能使用,是因為其依靠創(chuàng)造他本身的對象來創(chuàng)造線程,但是實現(xiàn)類只創(chuàng)造一個對象,其他對象都是利用Thread進行創(chuàng)造的。
但是我的代碼中,監(jiān)視器之后的鎖就不能使用this,因為在主函數(shù)中,我用的創(chuàng)建方法并不是一個對象傳入到Thread的構(gòu)造器中,我使用了匿名對象,如果使用this,每一次的鎖都是不一樣的鎖,無法起到監(jiān)視作用了
同時,在我的代碼中,使用了synchronized (類名.class)這種方式,在這里需要注意的是,類本身也是一個對象,類僅加載一次,與每次new完之后出現(xiàn)的新對象不同。所以在我看來,類是一個完美的鎖,不會出現(xiàn)重復(fù)的現(xiàn)象。
也需要注意對于同步代碼的包裝。要注意包裝的范圍,少包不能解決安全問題,包多了會影響效率,而且也容易出現(xiàn)新的問題。
方式二:
1、同步方法實現(xiàn)Runnable接口
synchronized可以修飾方法,但是需要符合題意,一般情況下不建議使用
在同步方法的內(nèi)部,就和使用synchronized包起來是一個效果
使用同步方法時,同步監(jiān)視器就是this
2、同步方法繼承Thread類的方法
對于繼承法而言,很明顯不能直接加synchronized,加了synchronized之后,會自動使用this作為監(jiān)視器,很顯然不行,此時應(yīng)該將方法改成靜態(tài)
總結(jié)同步方法
1、仍涉及同步監(jiān)視器,只是不需要顯式聲明
2、非靜態(tài)的同步方法是this,靜態(tài)方法的監(jiān)視器視為當前類本身
衍生內(nèi)容————單例設(shè)計模式
1、懶漢式(線程安全)
先來分析一下,在原本對于懶漢式的代碼中,線程安全可能會出現(xiàn)的部位
public class Bank { private Bank(){} private static Bank instance=null; public static Bank getInstance() { if(instance==null) { instance=new Bank(); } //在此段就容易出現(xiàn)堵塞或者就緒,當多線程在此處參與時,設(shè)線程a、線程b //a判斷了instance==null,已經(jīng)進入了語句,此時CPU將執(zhí)行權(quán)切換給了b或 //a由于某種原因阻塞了,那么此時可能就不僅僅創(chuàng)建了一個對象 return instance; }}//而在關(guān)于單例式操作,同時滿足有多個線程,有共享數(shù)據(jù)這兩個條件,可以實現(xiàn)線程安全
本質(zhì)上就是線程a、b搶鎖,誰先搶到就誰先造
如果想用同步方法,在本例中就可以直接將getInstance這個方法直接使用synchronized直接修飾,就可以解決線程安全問題
如果想使用同步代碼塊,就可以使用synchronized將getInstance這個方法中的內(nèi)容直接包裹,并且利用Bank.class對代碼進行監(jiān)視(效率差)
同步代碼塊——方法一
public class Bank { private Bank(){} private static Bank instance=null; public static Bank getInstance() { if(instance==null) { synchronized(Bank.class) { instance=new Bank(); } } return instance; }}
同步代碼塊——方法二
public class Bank { private Bank(){} private static Bank instance=null; public static Bank getInstance() { synchronized(Bank.class) { if(instance==null) { instance=new Bank(); } } return instance; }}
兩個方法在使用上的區(qū)別不大,都可以正常使用,但是實際上方法一的效率更高
假設(shè)現(xiàn)在有線程1和線程2,當線程1率先搶到CPU控制權(quán),先制造了對象,線程2在方法二中仍停留在synchronized語句上等待,一直到線程1制造完對象,線程2才能夠進入if,判斷失敗之后離開該方法,但是在方法一中,線程2先進入判斷,如果1已經(jīng)造完對象了,那么線程2就會直接離開。線程2就不會再進入等待區(qū)。
死鎖問題
不同的線程分別占用了對象所需資源不放,都在等對方放棄,形成死鎖
>不出現(xiàn)異常,不出現(xiàn)提示,所有的線程阻塞,不再進行
使用同步的時候,一定要避免死鎖問題出現(xiàn)
鎖的概念
Lock實際上就是一個接口,需要有實現(xiàn)類
Lock接口的具體使用,主要是對其實現(xiàn)類:Reentrantlock的使用
Reentrantlock
這個類有兩個構(gòu)造器,有一個形參fair
如果fair是true,就遵循先入先出,按照abc順序開鎖
如果fair是false或者沒有參數(shù),那么就是abc搶鎖,誰先搶到誰先開
1、實例化Reentrantlock
2、將同步代碼放到try中,在try首行調(diào)用Reentrantlock的對象調(diào)用Lock(),也可以調(diào)用解鎖,try-finally,其中不使用catch,只是想讓finally無論如果先給Lock解鎖,即使try過程有異常,也會給Lock解鎖
(其實本質(zhì)上也就是上鎖,只不過Lock需要手動開鎖,但是synchronized不需要,synchronized自動就會開鎖)
synchronized和Lock的異同
synchronized機制在執(zhí)行完同步代碼塊后自動釋放同步監(jiān)視器
Lock需要手動開鎖,不然會一直鎖定一個線程不放
基本都會使用synchronized,但是實際上更建議使用Lock
sleep()和wait()的異同
相同:都可以使當前線程進入阻塞
不同:
1、兩個方法聲明位置不同,Thread類中聲明sleep(),Object類中聲明wait()
2、調(diào)用范圍不同,sleep()在任何場景都能調(diào)用,wait()必須使用在同步方法或者同步代碼塊中
3、關(guān)于是否釋放同步監(jiān)視器,如果二者都在同步中,sleep()不釋放鎖,但是wait()會釋放鎖
標簽:
相關(guān)推薦:
精彩放送:
- []速讀:程序、進程和線程——多線程的創(chuàng)建方法
- []每日觀點:【W(wǎng)OTD】remittance 釋義/詞源/示例 詞源詞根演化
- []全球視點!什么是扁平化設(shè)計?扁平化時代之后會怎樣?
- []struts的框架介紹 Struts2框架的大致處理流程
- []微信支付如何關(guān)閉“自動扣費”?關(guān)閉微信自動扣費的方法步驟
- []全球熱點評!如何搭建VIE架構(gòu)?VIE架構(gòu)如何實現(xiàn)海外上市?
- []安琪酵母:人類飲食多樣化,正常食用米面不會對人體內(nèi)的胰島素產(chǎn)生不利影響,合理膳食,管住嘴,邁開腿
- []看熱訊:Kitten-少兒編程的首選工具 Kitten-少兒編程詳情介紹
- []世界速訊:rolling(k)函數(shù)的用法詳解 例子說明rolling函數(shù)的用法
- []世界速看:java的序列化機制是什么?java序列化ID的作用
- []環(huán)球快看點丨PMA的應(yīng)用是什么?基于PMA-qPCR的生物學(xué)檢測方法
- []與熊論道為什么解碼不了?“熊”孩子都有哪些表現(xiàn)?
- []新開源:年度審計仍在進行中,公司一月份已公告業(yè)績預(yù)告
- []安寧股份:截至2023年2月28日股東人數(shù)20,818
- []gpi是什么意思
- []焦點日報:怎么才可以貸款,需要滿足以下五個條件
- []玲娜貝兒首次與游客“貼貼”,上海迪士尼門票熱度環(huán)比大增350%
- []白銀股票的十大龍頭股,概念龍頭股名單一覽
- []每日消息!華住、錦江與雅高的十年“恩怨”
- []銀行卡賬戶名稱是什么意思
- []蒲公英如何祛斑
- []環(huán)球新消息丨無錫哪里好玩?無錫旅游景點有哪些?
- []哪些甜紅葡萄酒最好喝?分享四種最好喝的甜紅葡萄酒
- []我的小米賬號為什么登不上去了?小米賬號登不上去的解決方式?
- []全球熱資訊!徐州財經(jīng)學(xué)校是個什么樣的學(xué)校?徐州財經(jīng)學(xué)校資料介紹?
- []勤哲Excel服務(wù)器無代碼實現(xiàn)生物科技企業(yè)管理系統(tǒng)
- []白博美貴還是黃博美貴?為什么?
- []天天熱資訊!國防科技大學(xué)和清華北大比怎么樣?北京大學(xué)哪一年創(chuàng)辦?
- []【全球獨家】蜂巢能源攜手龍凈環(huán)保,合資儲能電池項目龍巖開工
- []天天熱文:氫能源股票龍頭股,氫能源龍頭股票盤點
- []當前頭條:汽車排量是什么意思?中國轎車級別怎么劃分?
- []環(huán)球短訊!大學(xué)生的就業(yè)競爭力主要包括哪些?大學(xué)生的就業(yè)競爭力介紹?
- []全球消息!g2030cpu是哪一年的?g2030cpu怎么樣?
- []全球微頭條丨洛陽龍門石窟夜景春節(jié)開放嗎?“夜游龍門”活動時間?
- []美暢股份:38μ以下規(guī)格的金剛線是公司目前主要出貨產(chǎn)品,產(chǎn)品價格相對穩(wěn)定
- []資訊推薦:A股快報 | 物流板塊早間開盤上漲 嘉友國際漲超8%
- []環(huán)球報道:港股房地產(chǎn)股走低 旭輝控股集團跌超4%
- []錦江集團2018年公司債即將到期兌付及摘牌 利率3.35%
- []最新:仁恒置地2月簽約預(yù)售增長243.0%至人民幣36.67億元
- []全球簡訊:湖北聯(lián)發(fā)投集團10億中期票據(jù)將到期兌付 票面利率5.9%
- []國中水務(wù):公司主營業(yè)務(wù)的具體情況,您可以關(guān)注公司發(fā)布在上海證券交易所網(wǎng)站上的公司年報
- []當前觀點:羅萊生活:公司已有抗H1N1病毒的自主知識產(chǎn)權(quán)技術(shù),并同時儲備了抗菌技術(shù)
- []世界簡訊:* 擬赴港上市難掩業(yè)績跳水困境,絕味食品逼近跌停
- []次級貸款的定義,貸款機構(gòu)向信用較差的人發(fā)放的貸款
- []全球今亮點!“黑馬”基金經(jīng)理來了!
- []環(huán)球今亮點!銀行儲蓄利率2020年利率
- []微速訊:2021年創(chuàng)業(yè)板50股票一覽表 2021創(chuàng)業(yè)板50支股票一覽表
- []前沿熱點:持倉是什么意思
- []怎樣購買基金,有以下三種方法
- []每日看點!尋釁滋事罪怎么量刑
- []世界快看點丨財面兒丨越秀地產(chǎn):前2月合同銷售額約225.96億元 同比上升約187.3%
- []快播:航天動力:公司未收到相關(guān)信息,公司按照相關(guān)法律法規(guī)履行信息披露義務(wù),不存在應(yīng)披露而未披露的信息
- []世界熱點!科遠智慧:公司自主研發(fā)并實現(xiàn)產(chǎn)業(yè)化推廣的SyncBase實時數(shù)據(jù)庫已經(jīng)在數(shù)千家工業(yè)企業(yè)取得廣泛應(yīng)用
- []每日快播:沈曉玲等:房企如何應(yīng)對現(xiàn)房銷售試點?
- []家居丨美克家居:為控股股東美克集團提供6000萬元擔保
- []短訊!新規(guī)實施!外墻面層計入建筑面積,公攤變大了?
- []世界熱點!同達創(chuàng)業(yè):公司目前沒有應(yīng)披露未披露信息
- []最資訊丨家居丨夢百合:副總裁王震增持3.84萬股公司股份 耗資45.12萬元
- []【速看料】中國核建:中國核建是中核集團控股的專業(yè)化上市公司,是中核集團完整的核產(chǎn)業(yè)鏈中的重要一環(huán)
- []淘氣值怎么增加 淘氣值如何增加
- []全球熱推薦:余額寶年利率 余額寶的年利率
- []環(huán)球快看點丨權(quán)益基金發(fā)行升溫 3月份以來新發(fā)數(shù)量占比超60%
- []全球新消息丨光能杯儲能主題演講第五彈:面向投資商和工商業(yè)業(yè)主的分布式儲能解決方案選擇策略
- []車險排行榜 車險公司排行榜
- []當前動態(tài):全國城市經(jīng)濟排名2021最新排名,上海排名第一
- []世界最新:中金:政策扶持+產(chǎn)業(yè)升級 智慧家居市場成長可期
- []每日簡訊:中泰證券:銀行股核心邏輯是宏觀經(jīng)濟 堅持修復(fù)邏輯和確定性增長邏輯兩條主線
- []世界今熱點:尚太科技:行業(yè)的供需起伏波動是市場經(jīng)濟正常的表現(xiàn)形式,大浪淘沙,有利于有綜合競爭優(yōu)勢的企業(yè)發(fā)展壯大
- []世界快看:又有A股知名公司"出事"!副總裁兼財務(wù)總監(jiān)涉嫌職務(wù)犯罪,影響多大?
- []南昌中溢置業(yè)掛牌杭州通原地產(chǎn)40%股權(quán) 底價8454萬元
- []普天科技:公司在開展5G相關(guān)業(yè)務(wù)的同時,也在積極探索和跟進6G的行業(yè)發(fā)展趨勢
- []華僑城擬發(fā)行20億元超短期融資券 申購區(qū)間2.5%-2.8%
- []國家隊出場次數(shù)即將破百,優(yōu)缺點明顯的張琳芃,算亞洲一流后衛(wèi)么
- []天天微速訊:折紙王子蝎子怎么折_折紙王子教你折毒蝎子
- []【新視野】疫情過后,酒店餐飲用工如何破局?
- []每日熱議!攜程集團扭虧為盈 2022年全年錄得凈利潤14億元
- []視焦點訊!改善居?。翰槐刭I,租也行!
- []沈曉玲等:多地鼓勵現(xiàn)房銷售試點,房企如何調(diào)整應(yīng)對?
- []焦點信息:全國政協(xié)委員戴斌:旅游需要網(wǎng)紅,但網(wǎng)紅不是旅游的全部
- []真蘭儀表:公司生產(chǎn)的氣體流量計是一種精密計量器具,主要用于天然氣的貿(mào)易計量與結(jié)算,其準確度達1.0級
- []【世界聚看點】12306網(wǎng)站無法退票_12306網(wǎng)站無法登陸
- []天天快報!教育部發(fā)通知,要及時淘汰不適應(yīng)社會需要的學(xué)科專業(yè),各位覺得哪些專業(yè)應(yīng)被淘汰?
- []歧路亡羊的故事概括20字_歧路亡羊的故事概括
- []全球頭條:綠城中國(03900.HK)前4個月總合同銷售金額約637億元
- []全球速看:仁東控股面臨多重壓力 投資者索賠案仍在進行中
- []天天快看:股東會見聞錄 | 招商蛇口“南油收購”決心
- []建業(yè)地產(chǎn)首兩月合同銷售總額49.9億元?同比增長57.7%
- []每日快看:古鰲科技:3月3日公司高管陳崇軍減持公司股份合計2萬股
- []全球快消息!中熔電氣:3月3日公司高管賈鈞凱減持公司股份合計2800股
- []【世界新要聞】鼎龍股份:3月3日公司高管楊波減持公司股份合計9萬股
- []天天動態(tài):龍佰集團:3月3日公司高管張海濤增持公司股份合計100股
- []世界實時:劉小蕙
- []今頭條!企業(yè)家看兩會: 科技、互聯(lián)網(wǎng)企業(yè)家代表委員關(guān)注哪些議題?
- []溢多利:公司目前沒有工業(yè)大麻產(chǎn)品
- []世界關(guān)注:“建議上調(diào)1萬+,請不要再賤賣自己的房子!”多地二手房業(yè)主抱團“保衛(wèi)房價”
- []每日看點!月度新車榜 | 智己、理想等SUV密集推出 小車市場再添新玩家
- []沃爾德:3月3日公司高管陳繼鋒減持公司股份合計3.18萬股
- []全球新資訊:2023年03月06日上市公司公告
- []【全球新視野】杭可科技子公司中標遠景動力在英國和法國擴產(chǎn)所采購的鋰電池后道設(shè)備項目 中標價1.17億美元(不含稅)
- []天天熱點評!榮盛發(fā)展定增方案獲深交所受理?募資金額不超30億
- 鍵盤上三個燈分別是什么?Num Lock鍵的作用介紹
- 天天觀點:WEG的完整形式是什么?WEG的完整形式介紹
- 今日熱搜:KL散度、交叉熵、概率分布的差異是什么?時間序列中的概率分布
- 每日看點!NTC熱敏電阻的采集方法有哪些?NTC熱敏電阻溫度采集方法介紹
- 什么是數(shù)據(jù)庫索引?MySQL官方對索引的定義及索引優(yōu)劣勢分析
- 新開源:2月底股東戶數(shù)為16271戶
- Log4j2源碼解析:同步寫、異步寫原理、中間技術(shù)思考
- 世界今頭條!AI論文中的novelty如何評價?詳情介紹
- 快資訊丨決策樹算法是什么?決策樹的定義與核心思想
- 【聚看點】全球最權(quán)威的學(xué)術(shù)期刊之一——《科學(xué)》
- B站注冊資本增幅400%至5億 目前由陳睿全資持股
- 光源資本出任獨家財務(wù)顧問 沐曦集成電路10億元A輪融資宣告完成
- 巨輪智能2021年上半年營收11.24億元 期內(nèi)研發(fā)費用投入增長19.05%
- 紅棗期貨尾盤拉升大漲近6% 目前紅棗市場總庫存約30萬噸
- 嘉銀金科發(fā)布2021年Q2財報 期內(nèi)凈利潤達1.27億元同比增長208%
- 成都銀行2021上半年凈利33.89億元 期內(nèi)實現(xiàn)營收同比增長17.27億元
- 汽車之家發(fā)布2021年第二季度業(yè)績 期內(nèi)新能源汽車品牌收入增長238%
- 中信銀行上半年實現(xiàn)凈利潤290.31億元 期末不良貸款余額706.82億元
- 光伏概念掀起漲停潮交易價格創(chuàng)新高 全天成交額達1.29億元
- 上半年生物藥大增45% 關(guān)鍵財務(wù)指標好轉(zhuǎn)營收賬款持續(xù)下降
- 環(huán)球看點!雅居樂前2月預(yù)售額約125.6億元 同比減少10.92%
- 報道:達安基因:公司主營產(chǎn)品為PCR診斷試劑及相關(guān)耗材、儀器等
- 頭條焦點:福星股份定增申請獲得深交所受理 募資不超過13.4億元
- 環(huán)球簡訊:新瀚新材:新產(chǎn)能產(chǎn)品驗證及爬坡需要一定的過程,公司會根據(jù)市場需求統(tǒng)籌安排產(chǎn)能
- 夢百合:3月6日公司高管王震增持公司股份合計3.84萬股
- 修培刻靈“蕉仙素”是非藥物療法與現(xiàn)代生物科技的結(jié)晶
- 國美控股所持1639萬股中關(guān)村股份被司法再凍結(jié)?累計凍結(jié)占比64.62%
- 綠景中國回購2750萬美元2023年到期年息12%票據(jù)
- 粗暴的流量時代已經(jīng)終結(jié),酒店營銷難題如何找到最優(yōu)解?
- 天天快報!財面兒丨中國海外宏洋集團1-2月累計合約銷售額78.48億元 同比上升34%
- * 貝斯曼擬赴美IPO,2022財年凈虧損擴大74%至232萬美元
- 環(huán)球快資訊丨深圳能源:公司按國家政策要求,積極簽署并落實煤炭中長期合同,中長期合同覆蓋率處行業(yè)中上水平
- 天天要聞:財面兒丨金地集團:前2月簽約金額240.1億元
- 今日要聞!德信中國1-2月合約銷售額55.4億?同比增長4.33%
- 財面兒丨保利置業(yè)集團:前2月合同銷售金額131億元,同比增長243%
- 觀焦點:凱撒文化:公司與沉浸世界除了線下空間合作之外,在VR游戲研發(fā)內(nèi)容方面雙方也有探討
- 環(huán)球今熱點:快訊 | 科凡定制深主板IPO獲受理
- 即時:曹仁賢代表:關(guān)于鼓勵民營企業(yè)參與大型新能源項目開發(fā)的建議
- 鉛炭電池是新型儲能技術(shù),商業(yè)化推廣前景可期
- CCER炒到106元/噸,會拉動全國碳市場價格上漲嗎?
- 動態(tài):2023快速成長,這7個城市的小型論壇必去!
- 電站項目全面轉(zhuǎn)N型|晶科N-TOPCon技術(shù)產(chǎn)品成“寵兒” 大幅提升大基地項目高質(zhì)量發(fā)展
- 世界熱門:逆天業(yè)績,極其低調(diào)卻兇猛,被低估的光伏隱形巨頭
- 天天通訊!國家發(fā)展改革委:大力推進以沙漠、戈壁、荒漠地區(qū)為重點的大型風(fēng)電光伏基地建設(shè)
- 全球快播:租個女友回家過年電視劇收視率_租個女友回家過年第2部
- iphone照片回收站在哪
- 世界百事通!安陽鋼鐵:相關(guān)問題請咨詢中國礦產(chǎn)資源集團
- 環(huán)球觀察:新洋豐:公司大股東洋豐集團公司深耕磷化工行業(yè)多年,一直積極推進磷礦資源投資和整合
- 世界短訊!盛洋科技:1.公司2019年度非公開發(fā)行股票募集資金投資項目之一為“通信鐵塔基礎(chǔ)設(shè)施建設(shè)項目
- 全球今日報丨融信中國2月合約銷售額約13.34億元 同比下降超八成
- 江蘇海潤城發(fā)集團30億元私募債狀態(tài)更新至“已受理”
- 全球速看:保利置業(yè)前2月合同銷售額131億元 同比增長243%
- 今日視點:沃森生物:相關(guān)期刊文獻屬于由研究者發(fā)起的臨床研究,具體產(chǎn)品持久性及效力數(shù)據(jù)需要以正式臨床研究結(jié)果為準
- 豫園股份:控股股東一致行動人新增質(zhì)押4056.2萬股
- 迭代新智感,讓此刻更好!ARROW箭牌×設(shè)計深圳震撼首展
- 當前熱門:珠海華發(fā)擬10億元公司債本息兌付及摘牌 利率3.54%
- 平頂山高新區(qū)推介11宗重點出讓地塊 涵蓋3宗商住地共387畝
- 每日速看!江瀚新材:股東查詢請聯(lián)系公司董事會辦公室0716-8377806
- 環(huán)球熱門:佳沃食品:上述傳言所述情況不屬實,相關(guān)事項請以公司公告為準
- 心曠神怡是什么意思?心曠神怡怎么造句?
- 當前關(guān)注:南京的各個區(qū)的郵政編碼是多少?南京的各個區(qū)的郵政編碼介紹?
- 【新要聞】大眾高爾夫和polo有什么區(qū)別?大眾高爾夫和polo的區(qū)別是什么?
- 每日聚焦:電視劇楚喬傳中趙西風(fēng)的扮演者是誰?趙西風(fēng)的扮演者資料介紹?
- 同程旅行:出境游重啟1個月,泰國最火爆
- 微信支付分如何開通?微信支付分的開通方法?
- 夢到死去的奶奶預(yù)示著什么?夢到已故的奶奶是好是壞?
- 傳奇世界怎么開私服?如何快速開私服?
- 全球訊息:中國核電站有幾個都在哪里?核電站是指什么?
- 全球百事通!elle中文叫什么牌子?elle中文品牌介紹?
- 文件粉碎的軟件有哪些?360文件粉碎機獨立版怎么樣?
- 今日熱搜:危地馬翡翠特點?
- 今年1月港私樓落成量3178伙 一半屬于細單位
- 【焦點熱聞】3月6日潤達醫(yī)療漲停分析:幽門螺桿菌概念,體外診斷,醫(yī)療器械概念熱股
- 天天觀熱點:3月6日中材節(jié)能漲停分析:光熱發(fā)電,央企改革,儲能概念熱股
- 平度城建公司完成發(fā)行5萬中期票據(jù) 利率5.5%
- 博匯股份:截至2月28日公司股東人數(shù)7734人
- 觀焦點:海倫堡物業(yè)退出鑫和物業(yè)100%股權(quán) 由欣科物業(yè)接盤
- 美聯(lián)香港樓價指數(shù)按周升0.43%
- 環(huán)球今熱點:咸陽城投集團10億元私募債項目更新至"已受理"
- 環(huán)球熱訊:3月6日奧士康漲停分析:6G,PCB板,小米概念股概念熱股
- 全球快訊:朗科智能:截至2022年2月28日,公司股東戶數(shù)為2.3萬戶
- 世界報道:當出差成為常態(tài),企業(yè)還想要“降本”該怎么辦?
- 向內(nèi)生長 篤定前行 | 青蛙王子2023年度全國經(jīng)銷商峰會
- 天天熱議:天璣科技:深圳市杉巖數(shù)據(jù)技術(shù)有限公司系公司全資子公司的參股公司,公司無應(yīng)披露而未披露信息
- 今日要聞!蘋果追蹤定位怎么用?幾步輕松搞定
- “20君山01”擬分期償還本金 本期將償還6億元本金的20%
- 灰熊做空中通快遞全文:中國“一流”物流的***
- 【快播報】美原油交易策略:油價受阻于100日均線,但后市仍偏向多頭
- 良信股份:感謝提問。公司始終遵循以客戶為中心的戰(zhàn)略導(dǎo)向,密切關(guān)注客戶需求及市場變化
- 全毛襯西服縫制工藝_西服定制中的全毛襯西服是什么意思
- 全球最資訊丨旅游板塊震蕩走高 西安飲食漲超7%、天目湖漲超5%
- 今日熱文:A股消費股異動拉升 人人樂漲停、西安飲食漲超7%
- 全球看熱訊:碧桂園服務(wù)2022年歸母凈利潤腰斬,股價跌超7%帶崩物業(yè)板塊
- 全球新資訊:和林微納:公司與歌爾微多維度合作,其中產(chǎn)品以MEMS精微零組件為主
- “19住總03”將于3月12日付息 計息年利率2.97%
- 一個月港元拆息連升2日 見3.06589%
- 微速訊:武漢城建集團9億元超短期融資券將于3月13日兌付 利率2.39%
- 全球播報:航天彩虹:公司建有民用業(yè)務(wù)運營團隊和部門,尚未設(shè)立相關(guān)子公司
- 全球關(guān)注:中國鐵建投資集團6億元公司債將于3月12日付息 利率3.45%
- 碩貝德:公司已基本完成低軌衛(wèi)星通信天線的研發(fā)
- 長沙放松限售政策調(diào)整為“網(wǎng)簽滿4年即可出售”
- 上海錦江收購盧浮集團八年啟示錄
- 澳洲旅游局局長旋風(fēng)訪華,急切盼望百萬中國游客
- 2023年成體旅融合加速年:海南吉林成體育旅游產(chǎn)業(yè)升級典范
- 世界快報:美聯(lián):香港2月工商鋪注冊量錄268宗
- 寶灣物流5億元中票將于3月11日付息 票面利率為3.4%
- 統(tǒng)一企業(yè)中國出售合肥16.71萬平方米工業(yè)地皮 獲補償約5.83億元
- 天天簡訊:重慶江北區(qū):房交會期間購房契稅50%補貼 以消費券形式發(fā)放
- 實時焦點:浙江自然:公司主要從事充氣床墊、戶外箱包、頭枕坐墊等戶外運動用品的研發(fā)、設(shè)計、生產(chǎn)和銷售
- 贊宇科技:公司OPO產(chǎn)品已試車完成,各項生產(chǎn)、衛(wèi)生許可已經(jīng)取得,目前處于客戶驗廠階段
- 【BT金融分析師】九毛九去年凈利潤暴跌86.2%,分析師稱其從未真正火起來
- 全球速讀:"22順豐泰森SCP005"將于3月14日本息兌付 發(fā)行金額5億元
- 天天快訊:通策醫(yī)療:關(guān)于公司回購方案計劃、進展及已回購資金,請以公司相關(guān)公告內(nèi)容為準
- 【環(huán)球快播報】通化金馬:公司正在關(guān)注股東減持計劃實施的進展情況,并按照法律法規(guī)的規(guī)定及時履行信息披露義務(wù)
- 一加Ace 2V 首發(fā)主動增強式超級Wi-Fi 獨家黑科技降低弱網(wǎng)延遲
- 梅花檔案第二部
- 環(huán)球簡訊:儲能240TWh,可再生電力30TW!馬斯克“宏圖計劃3”里的宏偉帝國何時誕生?
- 每日快報!上海哪些板塊買房最顯示身份和檔次?
- 焦點!三大利好支持 軍工板塊能否起飛?高波動的基金如何駕馭?
- 補血食品有哪些?分別有什么益處?
