如何重新編譯bs2019
『壹』 c#防止反編譯,如何將exe文件做成資源文件(加殼)
1.新建一個項目(所謂的殼)。命名為Test 2.將要加殼的程序test.exe文件做成資源文件防在Test文件中。 打開新建的項目Test,雙擊最右側的Solution Explorer的第一個按鈕Properties。 會出現這個畫面 然後點擊Resourse-AddResource-添加現有資源,就將你要添加的test.exe添加進去,然後再solution Explorer中會生成一個文件夾 Resource你的test文件就在那裡念漏面,然後右鍵test.exe的屬性將他改為嵌入的資源即(Embedded Resource),然後就搞定了。 3.之後將新建的項目Form1刪除, 將Programma.cs打開替換成以下禪高擾代碼 [STAThread] static void Main(string[] args){ String projectName = Assembly.GetExecutingAssembly().GetName().Name.ToString(); Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStrea m(projectName + ".Resources" + ".test.exe"); byte[] bs = new byte[stream.Length]; stream.Read(bs, 0, (int)stream.Length); Assembly asm = Assembly.Load(bs); MethodInfo info = asm.EntryPoint; ParameterInfo[] parameters = info.GetParameters(); if ((parameters != null) && (parameters.Length0)) info.Invoke(null, (object[])args);else info.Invoke(null, null);}大功告成了。 新生成的賀旦test.exe會打開你導入的exe文件,這樣當別人用反編譯軟體的時候,他只是顯示你新建的項目中的Programma。cs中的代碼。
『貳』 怎樣保證線程安全
如何確保java線程安全?
java中,線程安全的解決方法或過程:
1.如果對象是immutable,則是線程安全的,例如:String,可以放心使用。
2. 如果對象是線程安全的,則放心使用。
3.有條件線程安全,對於Vector和Hashtable一般情況下是線程安全的,但是對於某些特殊情況,需要通過額外的synchronized保證線程安全。
4.使用synchronized關鍵字。
什麼是線程安全,實現線程肆中備安全有哪些方法
自己學習的時候做了一些筆記,希望對你有幫助
當一個類已經很好的同步以保護它的數據時,這個類就稱為「線程安全的」---我沒有跑題...
5.線程的同步與死鎖
1.什麼是同步
通過synchronized關鍵字標識方法或者代碼塊,限制線程對其內容的操作(同步詳細介紹參見 .)
2.為什麼要同步
java允許多線程並發控制,當多個線程同時操作一個可共享的資源變數時(如數據的增刪改查),
將會導致數據不準確,相互之間產生沖突,因此加入同步鎖以避免在該線程沒有完成操作之前,被其他線程的調用,
從而保證了該變數的唯一性和准確性.
3.進行同步的格式
同步代碼塊
synchronized (同步的線程對象){
需要同步的代碼塊;
}
同步方法
synchronized 其他訪問修培攔飾符返回值方法名稱(){
方法內容
}
(synchronized也可以修飾靜態方法,此時如果調用該靜態方法,將會鎖住整個類)
4.什麼是死鎖
死鎖是進程死鎖的簡稱,是指多個進程循環等待它方佔有的資源而無限期地僵持下去的局面。它是計算機操作系統乃至並發程序設計中最難處理的問題之一
死鎖的解決
(死鎖詳細介紹參見進程死鎖及解決辦法.docx)
5.注意點
1.同步是一種高開銷的操作,因此應該盡量減少同步的內容。
通常沒有必要同步整個方法,使用synchronized代碼塊同步關鍵代碼即可。
怎樣保證線程安全,程序運行
只需要兩個線程和一個數據緩存鏈。 線程1:圖片採集線程,不停的採集數據,放到數據鏈里緩存
php如何保證線程安全
線程安全本身在php 的運行原理上就做到了,每個請求重新分配的內存空間,所謂php 的現線程安全,指的是 php擴展, 隨著擴展模塊的啟動,分配的內存可以提供給多個請求調用.
php線程安全通過全局的global_id ,為每個全局變數做了唯一ID的區分.
java中 sevlert 如何線程安全如何保證?
首先先說BS是什麼:
BS 指的是網站開發建設,程序員從無到有創建出一個程序,網站,或游戲,通常稱之為開發。
JAVA中BS開發:
指的是用java進行網站開發。
通常,單位在招人時,都希望是招熟手,也就是所謂的有開發經驗的程序員。
java中所謂的BS開發經驗:
指的就是java開發程序員,有開發過網站項目的經驗。
關於BS網站開發要求:
別的語言我不知道,但是java我還能說上一說,因為我本身就是這個行業的從業者。
首先,要會基礎的HTML/CSS,起碼你要看的懂做樣式的同事給你的東西。
然後,Servlet,JSP,javaScript,這些要學好,當然,重中之重是java基礎扎實,不然,你讀不懂別人的邏輯,也無法按照單位給的需求實現出功能。
最後,就是對框架的運用熟練了,每個單位用的框架不同,我用的SpringMVC框架。
請教多線程資料庫程序如何保證線程安全
你的提問就有問題
當你的程序不管是不是多線程的
獲得到一個資料庫連接是 資料庫會把這個連接標記為繁忙 當其他程序訪問時它會返回另外空閑的連接
連接個數是有限的 如果一直不釋放連接 資料庫就會告訴你連接已經使用完了
這里和線程安全有何關系呢? 線程安全和資料庫操作沒有直接關系
除了synchronized和lock還有哪些保證線程安全的方法
1 每次查詢少查點,用rowid記錄標記位,下次查詢從標記位開始。就是個變裂毀相的分頁。
2 jdk1.5以後有了java.util.concurrent包。
wait/notify 是另外一種方式?我第一次聽說。
spring singleton實例中的變數怎麼保證線程安全
spring中管理的bean實例默認情況下是單例的[sigleton類型],就還有prototype類型
按其作用域來講有sigleton,prototype,request,session,global session。
spring中的單例與設計模式裡面的單例略有不同,設計模式的單例是在整個應用中只有一個實例,而spring中的單例是在一個IoC容器中就只有一個實例。
但spring中的單例也不會影響應用的並發訪問,【不會出現各個線程之間的等待問題,或是死鎖問題】因為大多數時候客戶端都在訪問我們應用中的業務對象,而這些業務對象並
沒有做線程的並發限制,只是在這個時候我們不應該在業務對象中設置那些容易造成出錯的成員變數,在並發訪問時候這些成員變數將會是並發線程中的共享對象,那麼這個時候
就會出現意外情況。
那麼我們的Eic-server的所有的業務對象中的成員變數如,在Dao中的xxxDao,或controller中的xxxService,都會被多個線程共享,那麼這些對象不會出現同步問題嗎,比如會造
成資料庫的插入,更新異常?
還有我們的實體bean,從客戶端傳遞到後台的controller-->service-->Dao,這一個流程中,他們這些對象都是單例的,那麼這些單例的對象在處理我們的傳遞到後台的實體bean不
會出問題嗎?
答:[實體bean不是單例的],並沒有交給spring來管理,每次我們都手動的New出來的【如EMakeType et = new EMakeType();】,所以即使是那些處理我們提交數據的業務處理類
是被多線程共享的,但是他們處理的數據並不是共享的,數據時每一個線程都有自己的一份,所以在數據這個方面是不會出現線程同步方面的問題的。但是那些的在Dao中的
xxxDao,或controller中的xxxService,這些對象都是單例那麼就會出現線程同步的問題。但是話又說回來了,這些對象雖然會被多個進程並發訪問,可我們訪問的是他們裡面的方
法,這些類裡面通常不會含有成員變數,那個Dao裡面的ibatisDao是框架裡面封裝好的,已經被測試,不會出現線程同步問題了。所以出問題的地方就是我們自己系統裡面的業務
對象,所以我們一定要注意這些業務對象裡面千萬不能要獨立成員變數,否則會出錯。
所以我們在應用中的業務對象如下例子;
controller中的成員變數List和paperService:
public class TestPaperController extends BaseController {
private static final int List = 0;
@Autowired
@Qualifier("papersService")
private TestPaperService papersService ;
public Page queryPaper(int pageSize, int page,TestPaper paper) throws EicException{
RowSelection localRowSelection = getRowSelection(pageSize, page);
List paperList = papersService.queryPaper(paper,localRowSelecti......>>
如何解決線程安全問題
有2種解決方法。
第一,是採用原子變數,畢竟線程安全問題最根本上是由於全局變數和靜態變數引起的,只要保證了對於變數的寫操作要麼全寫要麼不寫,就可以解決線程安全,定義變數用sig_atomic_t和volatile。
第二,就是實現線程間同步啦,用互斥索,信號量。讓線程有序的訪問變數就可以啦
spring mvc怎麼保證線程安全
參考如下內容,講的很好,可以配置controller為單例模式,每次都新建一個:
SpringMVC和Struts2中是並發訪問否會存在線程安全問題。
對於使用過SpringMVC和Struts2的人來說,大家都知道SpringMVC是基於方法的攔截,而Struts2是基於類的攔截。
對於Struts2來說,因為每次處理一個請求,struts就會實例化一個對象;這樣就不會有線程安全的問題了;
而Spring的controller默認是Singleton的,這意味著每一個request過來,系統都會用原有的instance去處理,這樣導致兩個結果:
一是我們不用每次創建Controller,二是減少了對象創建和垃圾收集的時間;由於只有一個Controller的instance,當多個線程調用它的時候,它裡面的instance變數就不是線程安全的了,會發生竄數據的問題。
當然大多數情況下,我們根本不需要考慮線程安全的問題,比如,service等,除非在bean中聲明了實例變數。因此,我們在使用spring mvc 的contrller時,應避免在controller中定義實例變數。
如:
[java] view plain print?
public class Controller extends AbstractmandController {
protected pany pany;
protected ModelAndView handle(HttpServletRequest request,HttpServletResponse response,Object mand,BindException errors) throws Exception {
pany = ................;
}
}
解決方案:
有幾種解決方法:
1、在Controller中使用ThreadLocal變數
2、在spring配置文件Controller中聲明 scope="prototype",每次都創建新的controller
所在在使用spring開發web 時要注意,默認Controller、Dao、Service都是單例的。
『叄』 如何修改Bs的窗口大小
有兩種方法,方法一:
點擊電腦「開始」按鈕選擇運行,輸入命令regedit點擊確定或者直接按鍵盤上的回車鍵;
找到注冊表地址:[HKEY_LOCAL_MACHINE\SOFTWARE\BlueStacks\Guests\Android\FrameBuffer\0]修改對應項:Width(寬),Height(高)。默認為十六進制,可以選十進制修改值(相對好調衡如整)。
修改完成後重啟BlueStacks就可以看到效果了,可以右鍵點擊電腦右下角BlueStacks圖標,選擇「重新開始」。
方法二:
上網搜索並下載「靠譜助手」。下載完成後直接進行安裝;
運行靠譜助手改伏,切換至「模擬器設置」選項卡,點擊「解析度與內核攔攜存」項;
接著就可以在右側窗口中自定義模擬器窗口的大小啦。我們可以直接模擬器的大小並通過點擊「修改」按鈕來應用設置。
『肆』 如何編譯minix3並且做成可啟動的iso鏡像
1.先生成一個空白軟盤鏡像:
dd if=/dev/zero of=data.img bs=512 count=2880
2.使用losetup命令,把data.img作為loop device使用:
sudo losetup /dev/loop0 data.img
3.格式化這個loop device
sudo mkfs.msdos /dev/loop0 //如果沒有mkfs.msdos 命令,請檢查系統是否安裝了dosfstools包
4.檢查文件系統:
sudo fsck.msdos /dev/loop0
5.刪除 loop device:
sudo losetup -d /dev/loop0
6.這時候,data.img已經格式化完成,以可讀寫選項掛載空白軟盤鏡像
sudo mount -o loop,rw data.img /mnt/floop
7.往軟盤所掛載的節點上寫入文件,容量不超過 1.44M 就好了!
sudo cp file.c /mnt/floppy
8.卸載軟盤
sudo umount /mnt/floop
9.但是這樣還不可以引導,需要寫一個簡單的引導程序, 編譯後生成 boot , 大小不能超過512Byte,然後
dd bs=512 if=boot of=/dev/loop/0 count=1
把這個引導程序寫入軟盤鏡像的0扇區。
『伍』 如何在SoCEDS環境下編譯和更新preloader和uboot程序
打開14.0中的command shell把工作目錄轉換到ghrd中,使用make -j8 sof開始編譯硬體。(-j8 選項可以不帶,只是為了多打開幾個線程編譯比較快,但是需要四核的CPU支持)。
使用bsp-editor.exe打開bsp-editor工具,選擇file->New BSP。把Preloader setting directory指定為ghrd中的hps_isw_handoff/soc_system_hps_0。點擊OK關閉。再點擊Geneate生成BSP後exit BSP Editor。此時應該可以在GHRD中看到software目錄了。接下來需要注意的是要把GHRD中的makefile用\embedded\examples\hardware\cv_soc_devkit_ghrd的Makefile換掉(13.0下編譯不用替換)。然後使用 make uboot 命令會把preloader 和uboot文件都編譯出來。如果只需要編譯preloader,就使用make prelaoder好了。過程比較漫長,這里會重新編譯一遍硬體工程。
編譯完成後在software\preloader\uboot-socfpga 目錄下會找到u-boot.img文件,在software\preloader\uboot-socfpga\spl下會找到u-boot-spi.bin。為了方便,在GHRD下建立目錄preloader,把這兩個文件復制到該目錄!
u-boot-spi.bin為binary格式的文件,按照Altera的要求要按照特定格式添加文件頭!需要使用到的工具為mkpimage工具。切換工具目錄為剛剛建立的preloader目錄,使用命令mkpimage -o preloader_de1_soc.img u-boot-spl.bin 。此時文件夾下會產生一個preloader_de1_soc.img。 可以用於更新SD image中的preloader。
———————————————————————————————————————————————————
在更新之前,還是先說SoCEDS14.0中的一個工具alt-boot-disk-util.exe。在Command Shell 中輸入這個名稱就可以看見使用方法。
#Wirte BOOTLoader and PREloader to disk driver 'E'
alt-boot-disk-util -p preloaer -b bootloader -a write -d E
我的SD Card 被識別為I盤,所以我使用的命令為:
alt-boot-disk-util -p preloaer_de1_soc.img -b u-boot.img -a write -d I
不給我目前使用都會遇到device open error的錯誤。不知道是環境問題還是其他原因。所以還是在linux 系統下去更新preloader。
————————————————————————————————————————————————————
(個人使用的ubuntu linux 機器,其他版本應該類似)
把兩份文件復制到linux 機器上,並掛載啟動SD card。使用fisk -l 查看SD card 對應的節點編號。比如我的SD card 為8G,會看到這樣的一條信息:Disk /dev/sdb: 7948 MB, 7948206080 bytes 。說明這個節點為 /dev/sdb。
linux 工作目錄切換到preloader放置的地方後。分別使用下面兩條命令更新preloader和 uboot。
sudo dd if=preloader_de1_soc.img of=/dev/sdb3 bs=64k seek=0
sudo dd if=u-boot.img of=/dev/sdb3 bs=64k seek=4
再使用下sudo sync 命令就可以彈出SD card 了。
使用這張SD boot,你會發現列印出Clock 相關的信息。這個是14.0中添加的列印。另外注意到時間戳應該與編譯時間對應
『陸』 編譯器已經過期怎麼辦
原創 Sun Forte C編譯器過期 重新申請免費license並安裝的方法
1、從sun公司網站(網址:http://jsecom16.sun.com/ECom/EComActionServlet?StoreId=11&PartDetailId=FC9BS-602-TD99&TransactionId=Try&LMLoadBalanced=)
下載cc編譯器的license的密碼文件sparc.dat(下載的第一選項)。
(注意你必須有sun的注冊帳戶,免費注冊)
2、用root用戶登錄需使用cc編譯器的主機,進入如下目錄;
/opt/SUNWspro/license_dir
3、用spart.dat中的內容替換sunpro.lic,node文件中的內容,保存退出,過期的cc編譯器便可繼續使用,使用期一個月。