基礎拾遺—-多線程,基礎拾遺—-多線程

基礎拾遺

基礎拾遺——特性詳解

基礎拾遺——webservice詳解

基礎拾遺——redis詳解

基礎拾遺——反射詳解

基礎拾遺——委託、事件詳解

基礎拾遺——接口詳解

基礎拾遺——泛型詳解

基礎拾遺—–依賴注入

基礎拾遺—–數據註解與驗證

基礎拾遺—–mongoDB操作

基礎拾遺—-RabbitMQ

基礎拾遺—CLR

基礎拾遺—-多線程

前言

我們知道c# 程序是自上而下的,但有的時候部分程序使用時間較長比如下載文檔什麼的。這是就可以用到線程。線程可以理解為是程序的執行路徑,每個線程都定義了一個獨特的控制流。如果您的應用程序涉及到複雜的和耗時的操作,那麼設置不同的線程執行路徑往往是有益的,每個線程執行特定的工作。

1.線程的生命周期

線程生命周期開始於 System.Threading.Thread 類的對象被創建時,結束於線程被終止或完成執行時。

下面列出了線程生命周期中的各種狀態:

未啟動狀態:當線程實例被創建但 Start 方法未被調用時的狀況。

就緒狀態:當線程準備好運行並等待 CPU 周期時的狀況。

不可運行狀態:下面的幾種情況下線程是不可運行的:

  已經調用 Sleep 方法

  已經調用 Wait 方法

  通過 I/O 操作阻塞

死亡狀態:當線程已完成執行或已中止時的狀況。

2.多線程的優缺點

2.1.優點

  1. 可以使用線程將代碼同其他代碼隔離,提高應用程序的可靠性。
  2. 可以使用線程來簡化編碼。
  3. 可以使用線程來實現併發執行。
  4. 可以提高CPU的利用率

2.2.缺點

  1. 線程開的越多,內存佔用越大。
  2. 協調和管理代碼的難度加大,需要CPU時間跟蹤線程。
  3. 線程之間對共享資源的訪問會相互影響,必須解決競用共享資源的問題。
  4. 銷毀線程需要了解可能發生的問題並對那些問題進行處理。

3.線程的實現

3.1.異步委託

關於委託基礎拾遺——委託、事件詳解這有詳細介紹,我們都知道調用委託Delegate()或者Delegate?.Invoke()。進行執行,但是主線程的代碼是從上至下進行執行的,那麼我們想要委託方法進行一個新的線程只需BeginInvoke生成異步方法調用即可。

3.3.1.實現

        public delegate void ThreadDelegate();
        static void MethodDelegata()
        {
            Console.WriteLine("MethodDelegata");
        }
        static void Main(string[] args)
        {
            ThreadDelegate d = MethodDelegata;
            //BeginInvoke 兩個參數一個是執行完后回調方法,一個是返回結果,如委託有參數載氣前方添加即可。
            d.BeginInvoke(null,null);
            Console.WriteLine("Main");
            Console.ReadKey();
        } 

執行結果如下

 3.1.1.獲取線程返回值

線程執行時有可能執行時間過長,如果我們要獲取線程的返回值,這是就需要不回線程的狀態和利用線程的回調方法。

  • 檢測等待線程狀態
       public delegate int ThreadDelegate(int i);
        static int MethodDelegata(int i)
        {
            Console.WriteLine("MethodDelegata" + i);
            Thread.Sleep(1000);
            return 100;

        }
        static void Main(string[] args)
        {
            ThreadDelegate d = MethodDelegata;
            //BeginInvoke 兩個參數一個是執行完后回調方法,一個是返回結果
            IAsyncResult ar = d?.BeginInvoke(1, null, null);//獲取線程執行狀態
            Console.WriteLine("Main");
            while (!ar.IsCompleted) {//線程是否已執行完成,未完成執行
                Console.WriteLine(".");
                Thread.Sleep(10);//減少線程監測頻率
            }
            int res = d.EndInvoke(ar);//獲取線程的返回值
            Console.WriteLine(res);
            Console.ReadKey();
        }

結果如下

·  

我們如果不用while 的方式去等待方法執行結束,可以  ar.AsyncWaitHandle.WaitOne(1000); 但我們預估執行時間如果小於實際執行時間的化,返回值就獲取不到了。

 bool isEnd = ar.AsyncWaitHandle.WaitOne(1000);
                if (isEnd)
            {
                int res = d.EndInvoke(ar);//獲取線程的返回值
                Console.WriteLine(res);

            }

View Code

  • 利用 d?.BeginInvoke(1, callBackobject) 回調方法
       public delegate int ThreadDelegate(int i);
        static int MethodDelegata(int i)
        {
            Console.WriteLine("MethodDelegata" + i);
            Thread.Sleep(1000);
            return 100;

        }
        static void Main(string[] args)
        {
            ThreadDelegate d = MethodDelegata;
            //BeginInvoke 兩個參數一個是執行完后回調方法,一個是返回結果
            IAsyncResult ar = d?.BeginInvoke(1, CallBack, d);//獲取線程執行狀態
            Console.WriteLine("Main");
         
            Console.ReadKey();
        }
        /// <summary>
        /// 結束回調方法
        /// </summary>
        /// <param name="ar"></param>
        private static void CallBack(IAsyncResult ar)
        {
            var obj=ar.AsyncState as ThreadDelegate;
            int res = obj.EndInvoke(ar);
            Console.WriteLine("線程結束,結果為:"+res);
        }

 我們通過lamda表達式優化一下上面的代碼

     static void Main(string[] args)
        {
            ThreadDelegate d = MethodDelegata;
            //BeginInvoke 兩個參數一個是執行完后回調方法,一個是返回結果
            //IAsyncResult ar = d?.BeginInvoke(1, CallBack, d);//獲取線程執行狀態
            d?.BeginInvoke(1, ar => {
                int res = d.EndInvoke(ar);
                Console.WriteLine("線程結束,結果為:" + res);
            }, null);
            Console.WriteLine("Main");
            Console.ReadKey();
        }

3.2.Thread 類

3.2.1.不帶參數

        static void MethodThread()
        {
            Console.WriteLine("MethodDelegata");//第二個參數最多執行時間
            Thread.Sleep(1000);
        }
        static void Main(string[] args)
        {
            Thread t = new Thread(MethodThread);//創建了thread 對象單位啟動
        //Thread t = new Thread(()=> { Console.WriteLine("MethodDelegata"); Thread.Sleep(1000);});//可直接用lamda表達式 
            t.Start();
            Console.WriteLine("Main");
            Console.ReadKey();
        }

3.2.2.帶參數 

Start(obj) 傳參:定義方法如果有參數必須object
        static void MethodThread(object s) { Console.WriteLine("MethodDelegata"); Thread.Sleep(1000); } static void Main(string[] args) { //創建了thread 對象單位啟動
            Thread t = new Thread(MethodThread); t.Start("wokao");//傳遞參數
            Console.WriteLine("Main"); Console.ReadKey(); }
對象傳參:定義存放數據和線程方法的類
   class Program
    {
       
        static void Main(string[] args)
        {
            //創建了thread 對象單位啟動
            ClassThead c = new ClassThead("1");
            Thread t = new Thread(c.MethodThread);
            t.Start();//傳遞參數
            Console.WriteLine("Main");
            Console.ReadKey();
        }

    }
    public class ClassThead
    {
        private string wr;
        public ClassThead(string s)
        {
            this.wr = s;
        }
        public  void MethodThread()
        {
            Console.WriteLine("MethodDelegata");
            Thread.Sleep(1000);

        }
    }

3.2.3 前台線程和後台線程

  1.     前台線程:只要存在有一個前台線程在運行,應用程序就在運行。
  2.     後台線程:應用程序關閉時,如果後台線程沒有執行完,會被強制性的關閉
  3.     默認情況下,用Thread類創建的線程是前台線程,線程池中的線程總是後台線程。
  4. thread.IsBackground = true; 設置為後台程序
   static void MethodThread()
        {
            Console.WriteLine("MethodDelegata");
            Thread.Sleep(10000);

            Console.ReadKey();

        }
        static void Main(string[] args)
        {
            Thread t = new Thread(MethodThread);
            t.IsBackground = true;//當main執行結束后,不管t是否執行結束程序都關閉
            t.Start();//傳遞參數
            Console.WriteLine("Main");
        }

thread.Abort() 終止線程的執行。調用這個方法,會拋出一個ThreadAbortException類型的異常。

thread.Join() 將當前線程睡眠,等待thread線程執行完,然後再繼續執行當前線程。

3.3.線程池threadPool

上面已經說了線程是為後台線程,在這多線程的操作推薦使用線程池線程而非新建線程。因為就算只是單純的新建一個線程,這個線程什麼事情也不做,都大約需要1M的內存空間來存儲執行上下文數據結構,並且線程的創建與回收也需要消耗資源,耗費時間。而線程池的優勢在於線程池中的線程是根據需要創建與銷毀,是最優的存在。但是這也有個問題,那就是線程池線程都是後台線程,主線程執行完畢后,不會等待後台線程而直接結束程序。

 //如果帶參數必須為object
        static void MethodThreadPool(object obj)
        {
            Console.WriteLine("MethodDelegata"+Thread.CurrentThread.ManagedThreadId);//當前線程id
            Thread.Sleep(1000);
         }
        static void Main(string[] args)
        {
            ThreadPool.QueueUserWorkItem(MethodThreadPool);// 必須帶參數
            ThreadPool.QueueUserWorkItem(MethodThreadPool);
            ThreadPool.QueueUserWorkItem(MethodThreadPool);
            ThreadPool.QueueUserWorkItem(MethodThreadPool);
            ThreadPool.QueueUserWorkItem(MethodThreadPool);
            Console.WriteLine("Main");
            Console.ReadKey();
        }

3.4. Task

  1. Task是架構在Thread之上的,也就是說任務最終還是要拋給線程去執行。
  2. Task跟Thread不是一對一的關係,比如開10個任務並不是說會開10個線程,這一點任務有點類似線程池,但是任務相比線程池有很小的開銷和精確的控制
  3. 可以將任務入隊到線程池中異步執行。
  4. 線程池入隊的任務無法取消
  5. 沒有回調方法,可以使用委託實現回調

3.4.1.任務的定義

方法1

var t1 = new Task(() => TaskMethod("Task 1"));
t1.Start();
Task.WaitAll(t1);//等待所有任務結束 

方法2

Task.Run(() => TaskMethod("Task 2"));

方法3

  Task.Factory.StartNew(() => TaskMethod("Task 3")); 直接異步的方法 
  //或者
  var t3=Task.Factory.StartNew(() => TaskMethod("Task 3"));
  Task.WaitAll(t3);//等待所有任務結束

案列

 static void Main(string[] args)
        {
            var t1 = new Task(() => TaskMethod("Task 1"));
            var t2 = new Task(() => TaskMethod("Task 2"));
            t2.Start();
            t1.Start();
            Task.WaitAll(t1, t2);
            Task.Run(() => TaskMethod("Task 3"));
            Task.Factory.StartNew(() => TaskMethod("Task 4"));
            //標記為長時間運行任務,則任務不會使用線程池,而在單獨的線程中運行。
            Task.Factory.StartNew(() => TaskMethod("Task 5"), TaskCreationOptions.LongRunning);

            Console.WriteLine("主線程執行業務處理.");
            //創建任務
            Task task = new Task(() =>
            {
                Console.WriteLine("使用System.Threading.Tasks.Task執行異步操作.");
                for (int i = 0; i < 10; i++)
                {
                    Console.WriteLine(i);
                }
            });
            //啟動任務,並安排到當前任務隊列線程中執行任務(System.Threading.Tasks.TaskScheduler)
            task.Start();
            Console.WriteLine("主線程執行其他處理");
            task.Wait();
            Thread.Sleep(TimeSpan.FromSeconds(1));
            Console.ReadLine();
        }

        static void TaskMethod(string name)
        {
            Console.WriteLine("Task {0} is running on a thread id {1}. Is thread pool thread: {2}",
                name, Thread.CurrentThread.ManagedThreadId, Thread.CurrentThread.IsThreadPoolThread);
        }

View Code

3.4.2.async/await

async是contextual關鍵字,await是運算符關鍵字。

async/await 結構可分成三部分:

  1. 調用方法:該方法調用異步方法,然後在異步方法執行其任務的時候繼續執行;
  2. 異步方法:該方法異步執行工作,然後立刻返回到調用方法;
  3. await 表達式:用於異步方法內部,指出需要異步執行的任務。一個異步方法可以包含多個 await 表達式(不存在 await 表達式的話 IDE 會發出警告)。
class Program
    {
        async static void AsyncFunction()
        {
            await Task.Delay(1);
            Console.WriteLine("使用System.Threading.Tasks.Task執行異步操作.");
            for (int i = 0; i < 10; i++)
            {
                Console.WriteLine(string.Format("AsyncFunction:i={0}", i));
            }
        }
        public static void Main()
        {
            Console.WriteLine("主線程執行業務處理.");
            AsyncFunction();
            Console.WriteLine("主線程執行其他處理");
            for (int i = 0; i < 10; i++)
            {
                Console.WriteLine(string.Format("Main:i={0}", i));
            }
            Console.ReadLine();
        }
    }

4.線程爭用與死鎖

  class Program
    {
        static void ChangeState(object obj)
        {
            ClassThead c = obj as ClassThead;
            while (true)
            {
                c.MethodThread();
            }
        }
        //如果帶參數必須為object

        static void Main(string[] args)
        {
            ClassThead c = new ClassThead();
            Thread t = new Thread(ChangeState);
            t.Start(c);
            Console.WriteLine("Main");
            Console.ReadKey();
        }

    }
    public class ClassThead
    {
        private int state = 6;
        public void MethodThread()
        {
            state++;
            if (state == 6)
            {
                Console.WriteLine("MethodDelegata");
                Thread.Sleep(1000);
            }
            state = 6;
        }
    }

View Code

可以從上面的方法中看到執行結果為空,雖然他在執行但是state一直都是>6的。所以是不執行的。

但如果開啟兩個線程的結果是什麼呢?

是執行的因為多個線程有可能是在執行時另一個線程給他賦值了。所以我們就要給對象加鎖

        static void ChangeState(object obj)
        {
            ClassThead c = obj as ClassThead;
            while (true)
            {
                lock (c)
                {
                    c.MethodThread();
                }
            }
        }

注:但是有可能會出現線程爭用一直等待的情況,所以在編程過程設計好鎖的順序

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※別再煩惱如何寫文案,掌握八大原則!

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※超省錢租車方案

※教你寫出一流的銷售文案?

網頁設計最專業,超強功能平台可客製化

聚甘新

測試人員遇到Android APP崩潰和無響應手足無措?,基於Python的Appium環境搭建合集

這2天,在測APP兼容性時,遇到APP奔潰閃退的情況。將問題反饋給開發后,開發自己調試后,沒有復現。由於又是遠程,base地不在一塊,我總不能把手機寄過去吧,那也太費事了。

所以就想到,提供明確的報錯日誌,讓開發定位問題,豈不是就很方便了,也解決了遠程的問題。

那如何抓取到Crash日誌呢,我又沒開發調試工具,也不可能在短時間內搭建一套開發環境。尋思答案后,最終得到了完美解決,且聽細細道來。

了解Crash

我們先來簡單了解下Crash:Crash,就是崩潰。anr(Application Not Responding — 程序無響應)是Crash的一種。程序正常運行中,可能會出現未捕獲到的異常,這就會造成崩潰。

常見Crash異常

NullPointerException  空指針

ClassCastException  類型轉換異常

IndexOutOfBoundsException  下標越界異常

ActivityNotFoundException Activity  未找到異常

IllegalStateException  非法狀態異常

ArrayIndexOutOfBoundsException  數組越界異常

SecurityException  安全異常

NoSuchMethodException  方法未找到異常

SQLException  操作數據庫異常

抓取奔潰和無響應日誌

對於開發人員來說,抓取日誌是很方便的,但對於測試人員來說,就不是太方便了。大多都是直接dos窗口下執行adb命令來抓取日誌,而每次都敲命令也是很麻煩。

所以通過adb程序與bat命令組合使用來抓取日誌,就要方便很多了,短短几秒鐘,可以輕鬆搞定日誌的抓取,期不期待。

環境準備

安裝JDK和ADB,這個安裝很簡單,可參見以前的博文,基於Python的Appium環境搭建合集。

bat文件製作

環境準備好后,就來寫bat文件了。

捕獲Crash異常的bat文件命令

命令參考如下,製作成logcat.bat文件,logcat.bat文件可以放置任意位置。注意:如果adb沒有配置到環境變量中,則需要將logcat.bat文件放到adb對應文件夾中。

@ECHO OFF
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"

SET timeStamp=%dt:~0,4%-%dt:~4,2%-%dt:~6,2%_%dt:~8,2%-%dt:~10,2%-%dt:~12,2%
SET mutID=_mut

@ECHO ON
adb logcat -v time > .\"%mutID%_%timeStamp%_logcat.log"

pause

上述命令實現原理:該工具的原理是bat文件調用adb工具,將手機運行日誌拉到本地,並將實時日誌也記錄到本地。

當手機需要重現Crash、或者某一段時間內已經發生過Crash,點擊我們製作的bat文件,logcat文件中的命令會將手機的logcat日誌拉下來並實時記錄,直到你關閉cmd窗口。

然後在拉下來的txt中尋找FATAL關鍵字,附近上下文即為Crash日誌。

捕獲ANR異常的bat文件命令

anr:全稱為Application Not Responding,意思為程序無響應。

命令參考如下,製作成anr.bat文件,anr.bat文件可以放置任意位置。注意:如果adb沒有配置到環境變量中,則需要將anr.bat文件放到adb對應文件夾中。

@ECHO OFF
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
SET timeStamp=%dt:~0,4%-%dt:~4,2%-%dt:~6,2%_%dt:~8,2%-%dt:~10,2%-%dt:~12,2%
SET mutID=_mut
@ECHO ON
adb pull data/anr/traces.txt traces_%timeStamp%.txt

實現原理與捕獲Crash異常是一樣的,只是該命令是針對發生anr的情況。

具體實踐

捕獲Crash異常具體用法:

①將android手機連接電腦,開啟開發者模式並允許usb調試;

②運行logcat.bat文件

③如果手機程序已經發生過crash,10秒后關閉cmd窗口;如果是想重現crash,則在手機端重現后即可關閉cmd窗口;

④在logcat.bat的同級目錄下會生成一份log文件,從文件中搜查FATAL關鍵字,便可找到崩潰代碼。

查看報錯日誌,報錯如下所示:

如上所示截圖,就是測試過程中,發生奔潰的日誌了,將日誌貼在bug里,既方便開發排查問題,又節約協作時間。

使用優點

使用bat文件捕獲日誌,有如下幾個有點:手機無需root;無需開發環境支持;方便保存、查找日誌;操作簡單。

以上就是捕獲報錯日誌的操作步驟了,希望對有需要的博友有所幫助。

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※教你寫出一流的銷售文案?

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※回頭車貨運收費標準

※別再煩惱如何寫文案,掌握八大原則!

※超省錢租車方案

※產品缺大量曝光嗎?你需要的是一流包裝設計!

聚甘新

汎德和台達電合作,為北市增添電動車充電站

電源管理及散熱解決方案廠商台達電10日宣布,BMW台灣總代理汎德選定台達的電動車充電解決方案,並捐贈給台北市政府,將在今年3月底前,為台北市20處公用停車場設置40台具有網路通訊功能、IP55防塵防水與時尚精巧的外型設計的台達智能電動車交流充電機,為越來越多的BMW i系列以及搭配J1772 Type1規格的電動車提供更便捷的充電服務,同時也強化了台達在台灣的充電站普及率。

台達副總裁暨電源系統事業群總經理鄭安強調,台達十分樂意與夥伴攜手實現智能綠生活,很榮幸可以滿足BMW台灣總代理汎德對充電站的嚴謹要求,包括其高度可靠度以及智能化。事實上,台達電動車充電解決方案已獲得許多國家的肯定,並且在歐洲、台灣以及大中華區累積不少成功案例。

台達電指出,台達智能電動車交流充電機擁有網路通訊功能、內建RFID讀卡機與7kW電源容量,能協助系統管理廠商為電動車車主提供更便利的服務。另外,這款通過台灣CNS標準認證的交流充電機具有IP55防塵防水與防破壞(IK8)機體設計,除了相當堅固外,時尚精巧的外型設計更能節省空間,而台達充電站管理系統(Site Management System, SMS)能進行遠端支援及能源管理的功能,提升充電基地營運效率。

台達電並表示,台達電動車充電解決方案逐步於全球協助夥伴建立住宅及商業應用的高效、快速與方便的電動車充電設備。例如,台達的120kW直流超快速電動車充電機於挪威及瑞典的高速公路能夠同時提供四台電動車快充的服務。台達其它直流與交流技術也於香港國際機場、上海的商業大樓與台灣的日月潭旅客租車服務支援電動交通。

(本文內容由授權使用。)

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※帶您來了解什麼是 USB CONNECTOR  ?

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※教你寫出一流的銷售文案?

第七屆中國國際新能源汽車論壇2017之電池前沿技術與前景

毋庸置疑,電池是新能源汽車的核心部件。當前比較主流的電池包括超級電容器、金屬氫化物鎳電池、鋰離子電池、燃料電池。超級電容器的特點是可承受瞬間大電流充放電,但儲電量低,不能驅動車輛長時間的使用;金屬氫化物電池具備大電流充放電能力,安全性好,但是比容量低,體積較大;鋰離子電池的電壓在這幾類電池中最高,比容量高,但它的是安全性、低溫性能差;燃料電池從去年開始走進更多人的視線,能量儲備充足,可快速補充燃料,但成本高,瞬間輸出能力差,致命的缺陷是不能進行能量的回饋,導致驅動的車輛不能只用燃料電池實現刹車時能量的回收。

站在“風口”的新能源汽車正在經歷“冰火兩重天”:一面是整個行業不斷高速擴張銷量加速,但另一面,作為新能源汽車“心臟”的動力電池供應卻出現不足,影響新能源整車產量從量上看,今年新能源產銷帶來的動力電池需求依然將進一步放大。但在下游原材料價格暴漲以及上游整車廠價格打壓的雙重壓力下,什麼樣的動力電池企業能夠實現突圍?業內人士預計,在短暫的火爆期之後,成本和技術導向或使得今年動力電池行業將進入洗牌期。而在霧霾圍城、PM2.5屢屢爆表的現狀下,發展並普及新能源汽車具有重要的現實意義。而因新能源汽車井噴所帶來的大量退役動力電池,引發了行業的未雨綢繆。

新能源汽車對於電池的需求量仍處於巨大的增長空間,並且總體而言,動力電池的安全性與新能源汽車的使用要求還存在一定差距,中國國際新能源汽車論壇—致力於打造全球規模最大,最國際化的新能源汽車論壇的第七屆大會攜手上海市嘉定區人民政府將會專門設立動力電池板塊,進行為期2天的技術探討及分享,屆時國內外知名的整車商,動力電池知名供應商及零部件企業高層領導等將前來分享各自對於目前動力市場的發展前景看法及介紹最前沿的技術,同時,也會側重於目前存在的難點——梯次利用及回收和技術方面進行更深層次的交流。

本屆大會將於2017年5月17-19日在上海舉辦,大會涉及七個論壇、頒獎典禮、研討會及晚宴。屆時將會有全球範圍內的整車製造商、電網電力公司、電池廠商、零部件供應商、核心技術提供商和政府官員等600多位行業人士一起,對新能源汽車產業面臨的挑戰,機遇與對策各方面進行為期三天更深層次並具有建設和戰略性的探討,期待您的參與。

會議結構

若您對峰會有更多要求,請撥打021-6045 1760與我們聯繫,謝謝理解和支持!
我們期待與貴單位一起出席於2017年5月17-19日在上海舉辦的第七屆中國國際新能源汽車論壇2017,以利決策!
想瞭解詳細內容,請登陸官方網站:
連絡人:Summer(謝清)
電話:+86 21-6045 1766
傳真:+86 21-6047 5887
郵箱: market@ourpolaris.com

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※為什麼 USB CONNECTOR 是電子產業重要的元件?

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※台北網頁設計公司全省服務真心推薦

※想知道最厲害的網頁設計公司"嚨底家"!

※推薦評價好的iphone維修中心

Nissan 無人駕駛電動車預計2020量產

日本汽車廠商Nissan 宣布,該公司歐洲的首次無人駕駛汽車測試將在倫敦進行,2017 年下半年有望在歐洲市場推出配置半自動駕駛的SUV,這一車款已經在日本市場上市。

Nissan 對於無人駕駛技術的研發非常重視,同時在應用方面表現得非常謹慎。此次在倫敦進行測試的無人駕駛車採用的技術短期內不會應用在量產車上,測試的將是一輛LEAF 電動車,配置了雷達、鐳射和鏡頭,預期在2020 年會應用到量產車上。Nissan 會邀請監管機構和政府工作人員來體驗無人駕駛車,測試的過程中車內會安排司機監控,以避免意外狀況的發生,測試不會向大眾開放。

Nissan 並不是第一家在英國進行無人駕駛公共道路測試的公司,Volvo 將在英國的公共道路上進行100 台無人駕駛汽車的測試。

汽車廠商認為無人駕駛技術能夠有效地提升乘車的安全性,減少車禍的死亡率,但這一技術的推廣仍面臨許多挑戰,公眾對於無人駕駛技術存在諸多質疑。

據倫敦經濟學院最新報告顯示,大約有55% 的英國司機表示在無人駕駛汽車中非常不自在,83% 的司機更擔心無人駕駛汽車發生故障,85% 的司機認為無人駕駛系統無法跟人互動。

(合作媒體:。圖片出處:)

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

USB CONNECTOR掌控什麼技術要點? 帶您認識其相關發展及效能

台北網頁設計公司這麼多該如何選擇?

※智慧手機時代的來臨,RWD網頁設計為架站首選

※評比南投搬家公司費用收費行情懶人包大公開

※回頭車貨運收費標準

傳亞光供應車載鏡頭於美系電動車供應鏈

市場傳出,光學零件大廠亞光車載鏡頭於 2016 年第四季打進美國電動車大廠供應鏈,去年11月已開始出貨,單月出貨量約2-3萬顆, 2017年出貨則可望進一步放量成長,為營運增添動能。

對此,亞光董事長賴以仁表示,不評論客戶訂單,但他強調,今年在包括車用、虛擬實境 (VR) 等運動攝影機方面,訂單表現都不錯,消費型相機的需求亦有回溫,預估今年營收及獲利表現可望優於去年;同時,今年美國 CES 展中受矚目的先進駕駛輔助系統 (ADAS),亞光布局雷射測距應用於瞄準儀的時間已久,而在雷射測距及 HUD(抬頭顯示器)方面,也都是 ADAS 應用的重要零組件。

據悉,亞光出貨美國電動車廠的車載鏡頭主要為雷射測距,用於自動駕駛系統;除美國電動車市場外,亞光的車載鏡頭也間接切入歐洲車廠,今年布局重點包括 ADAS 等重要零組件。

亞光去年全年營收 179 億元,年減 1.6%,惟受惠產品組合優化,獲利優於營收表現,其去年前三季稅後淨利 2.97 億元,每股盈餘1.06元,已優於 2015 年全年表現。

(本文內容由授權使用)

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

※想知道購買電動車哪裡補助最多?台中電動車補助資訊懶人包彙整

南投搬家公司費用,距離,噸數怎麼算?達人教你簡易估價知識!

※教你寫出一流的銷售文案?

※超省錢租車方案

昶洧將於桃園建電池包場,望2018可推首款量產車

昶洧日前舉行法說會說明近期電動車發展成果與展望,公司董事長沈瑋表示,即將在桃園觀音興建電池包廠,並預計第一台試製樣車 (Beta Car) 可在今年三月出爐,最快 2018 年底發表首款量產車。

針對電動車研發近況,沈瑋表示,公司測試路車 (Alpha Car) 進入路測階段,目前已測試 200 多次,仍持續地蒐集路測數據進行分析,最佳測試風阻係數為 0.23,比 FF 推出的新車還低,是目前風阻係數最低的電動轎車。

他也指出,公司與大陸贛州發改委合作的第一期廠房已建設完成,預計四月份設備將會安裝完畢,而贛州廠試製車間也已完工並開始運作。此外,也已與西班牙巴塞隆納區洽談合作建廠計劃,蘇格蘭政府也看中昶洧技術並邀請去當地設立研發中心,顯見公司卓越的技術已深獲大陸與歐洲政府的看重並積極提出合作的方案。

昶洧也指出,公司計劃在台灣桃園觀音鄉自有土地 2 千多坪上設置電池包廠,另投資新台幣 3 億元建廠房及購置機器設備,因技術均為自有研發技術及自有土地,預計毛利率相對較高,有助於業務開展,電池包量產銷售後可維持台灣地區的營運開支所需;電池包廠將於今年動工,年產量約計 8,000~12,000 片,這部分雖然只能供應贛州昶洧新能源公司十分之一所需,但不會全數供應自家車廠,仍會考慮部份出售給其他車廠。

關於昶洧新車展示及上市計畫,沈瑋則指出,除了一至二月在中國贛州廠展示外,三月底會在香港展出,待香港展覽完成後預計將會安排來台灣展示。昶洧也預計於今年九月時參加法蘭克福車展, 2018 年三月份參加日內瓦車展,超級跑車廠預計今年底完成建廠作業;計畫超級跑車及轎車於今年下半年即可開始預購。

在製車技術方面,沈瑋表示,昶洧輕量化技術是全球獨一無二,目前已申請專利,創新底盤及電池包等多項核心技術都是自行研發,且使用專有航太模擬器進行數據模擬與測試,故節省相當多製作模具的費用,因此領先其他廠商且在開發經費上較其他廠商減少成本約 40~60%,主因是大多數的技術都是自有的。

沈瑋並表示,昶洧一直戮力於發展新興電動車產業,尤其以自行研發的電池管理系統、熱管理系統及創新底盤設計等三大核心專業技術,期許帶動台灣電動車產業供應鏈的升級,惟受台灣保守的投資環境及相關電動車產業政策不明確與未積極推動下,對於公司有心從海外募集資金回流於台灣設廠,提升台灣電動車產業發展的計畫,屢受阻礙;為了不影響公司中、長期發展及創造股東的利益,董事會已通過出售所投資之Flash Hope Holdings Limited部份股權,以獲取資金進行後續投資計劃,且昶洧所屬企業在海外募資的成果截至目前為止,在大陸已募得人民幣 12.3 億元(合台幣56.58億元),將有助全力發展當地的電動車事業。

(本文內容由授權使用。圖片出處)

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

※Google地圖已可更新顯示潭子電動車充電站設置地點!!

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※別再煩惱如何寫文案,掌握八大原則!

網頁設計最專業,超強功能平台可客製化

中國將要求新能源車業者追蹤回收動力電池

電動車、插電式油電混和車等被稱為「新能源車」的車款均需配置車用動力電池,使電池與新能源車的產業發展密切相關。隨著中國新能源車消費量提高,電池汰役回收的需求很快就會浮上檯面;中國工信部因而規定,未來新能源車業者須追蹤、回收所使用的動力電池。

拓墣產業研究所研究,中國的新能源車輛產業涵蓋一般家用車到大眾交通運輸,在政府的積極補貼下,自2015年起就在全球汽車市場上佔有一席之地。2016年的新能源車全球佔比更超過了50%,是全球最大市場;中國的車商比亞迪(BYD)的全球市佔率也有14%之多。

龐大的新能源車市場,意味著龐大的車用電池用量。一般而言,純電動車的車用電池會在蓄電力降至七成左右時汰換,使用期限大約是五至七年不等;因應及將到來的車用電池汰換潮,中國工信部下發《新能源汽車生產企業及產品准入管理規定》,規定自2017年7月1日起施行回收辦法。

根據規定,擁有開發新能源汽車資格的廠商方可生產新能源汽車,且須負責新能源車生產之管理、各式認證申請、確保合格、售後服務等。售後服務須包括產品質保,包括電池等零組件的回收機制。

規定第十八條指出:「新能源汽車生產企業應當在產品全生命週期內,為每一輛新能源汽車產品建立檔案,跟蹤記錄汽車使用、維護、維修情況,實施新能源汽車動力電池溯源信息管理,跟蹤記錄動力電池回收利用情況。」意味車商須建檔追蹤動力電池的實際狀況,以在必要時提醒回收。

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

南投搬家公司費用需注意的眉眉角角,別等搬了再說!

※教你寫出一流的銷售文案?

中國大陸電動車價格遭砍,影響股價

韓國同意美國佈署薩德飛彈防禦系統之後,頻遭中國報復,之前韓國電動車電池商遭到鎖定,被踢出中國補助名單之外。近來北京又出新招,據傳中國電動車商可能要求電池供應商砍價35~40%,韓商更難獲利,電池大廠三星SDI (Samsung SDI) 聞訊一度重挫 4%。

嘉實全球贏家系統報價顯示,台北時間 19 日中午 11 點 26 分,三星SDI股價大跌 4.44%、報 107,500 韓圜。另一韓國電池廠 LG Chem 也挫低 1.29%、報 268,000 韓圜。

巴倫 (Barron’s) 18日報導,摩根士丹利(大摩)分析師Shawn Kim報告稱,中國高工產業研究院宣稱,部分中國電動車商要求電池業者,今年電池價格下砍35~40%。大摩中國分析師Jack Lu認為,中國電池商大砍價格之後,仍有可觀獲利,此一方案可望繼續推動,如此一來,或許會壓縮三星 SDI 毛利。

中國處處設限,電池大砍價,北京又打算把合格電池廠的生產門檻一口氣增至8GWh,韓商生存空間大受打壓。不只如此,三星SDI供應三星Galaxy S8電池的利多,市場也反應過頭。大摩估計S8對三星SDI營收貢獻只有 4~6%。

美國、南韓去(2016)年7月宣布在韓部署「薩德」(THAAD) 反導彈系統之後,中國就開始積極抵制南韓,車用電池大廠LG Chem、三星SDI (Samsung SDI)首當其衝。中國工信部(MIIT)最新公布的第五批新能源汽車推薦目錄中,將內建LG Chem、三星SDI電池的電動車全部剔除。也就是說,所有內建韓系電池的新能源車,都已不再符合北京政府的推薦標準。

Maeil Business News Korea、Business Korea等外電2日報導,在工信部最新列出的493款新能源車推薦名單當中,沒有一款內建LG Chem、三星SDI的車用電池。

巴倫 (Barron’s)、BusinessKorea報導,中國工信部去年11月22日發布《汽車動力電池行業規範條件》修正草案,有意把合格電池廠的生產門檻,從 0.2GWh 至 8GWh,等於一口氣提高 40 倍之多。這也是向廠商喊話,若不在中國生產,就別想做中國生意。

韓媒認為,北京當局此舉是要阻止韓商跨入中國市場,原因之一是要報復南韓和美國合作,佈建薩德 (THAAD) 飛彈防禦系統;另一可能是陸電池廠缺乏補助,政府排除外商競爭,保護本國產業。8GWh 電池產能可供13萬輛純電動車使用,當前 LG Chem 南京廠產能只夠5萬輛電動車使用,三星 SDI 西安廠則可供 4 萬輛電動車使用。據稱符合 8GWh 規定的業者只有兩家,其中之一是陸廠比亞迪 (BYD)。

(本文內容由權使用。圖片出處:Pixabay CC0)

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※想知道最厲害的網頁設計公司"嚨底家"!

※別再煩惱如何寫文案,掌握八大原則!

※產品缺大量曝光嗎?你需要的是一流包裝設計!

興大發明電動車無線充系統,亦可傳輸數位資訊

一直以來,電動車無線充電技術就是各方研究努力的方向;最近中興大學電機工程學系的團隊開發了一個可以讓電動車無線充電的新系統,除此之外,還可以在傳輸的過程中進行資料的雙向傳輸。

由中興大學電機工程學系的講座教授林俊良和博士候選人黃志誠帶領的團隊,成功研發出一套可行性高、價格也相對低廉的電動車無線充電系統,且在電動車充電時還能雙向傳輸數位資訊,例如:汽車車牌、電池電量、緊急命令等。

資料藉由磁場傳輸,不如傳統無線通訊設備(如:Wi-Fi、藍芽、Zigbee)需要配對和設定,因此相對簡單。電動車充電時亦不受電磁波干擾,多輛車子同時充電也無互相干擾的顧慮。電流過載時自動在8 秒內斷電並提出警訊,多餘的電力則會回饋給充電站。此設計不僅延長了電池壽命,也不會浪費電力。

林俊良表示,此項非接觸充電系統可應用於集合型住宅大樓的微型電網,充電的多餘電力可以回饋給社區,將來可望朝商業化發展。此創作已通過四項專利、2016 年台灣創新發明大賽鉑金獎、2016 年東元綠能大賽人文獎等,研究成果發表於2017 年 1 月電機電子工程學會出刊的《IEEE Transactions on Industrial Electronics》刊物上,進階版本於IEEE Transactions on Power Electronics 複審中,亦有第五項專利正在審查。

()

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※別再煩惱如何寫文案,掌握八大原則!

※教你寫出一流的銷售文案?

※超省錢租車方案

FB行銷專家,教你從零開始的技巧